I’m experiencing the exact same problem.
When running:
add_action('save_post', 'function_name');
Which in turns calls this function:
function function_name($post_id)
{
//perform some action
}
The function should be parsed the correct $post_id variable. This only works for the initial save, upon subsequent edits WP passes a different post_id to the post that is being edited.
If anyone can shed some light on this situation, it would be very much appreciated.