I’ve looked over your code and I don’t see anything wrong with it, given what I see.
Are you interacting with this field before the code you’ve given? Are you using get_post_meta() or any function that would cause WP to query the meta values for this field?
If you are you could be having issues with the WP meta cache. Try clearing the cache before the above code
wp_cache_delete($post_id, 'post_meta');