It’s default WordPress behavior. You cannot create, save or even trash “empty” posts (considering, for that last case, that you created one manually).
Luckily, there’s a filter that allows you to override it and insert / save posts without need for title or content; insert this into your functions.php
:
add_filter('wp_insert_post_empty_content', '__return_false');
I’ve successfully created a post with only meta fields with the code above.