Post Meta not saving when have empty post

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.