wp_update_post breaks my function

Found the answer thanks to Jacobs comments + this similar thread:

I had to use remove_action() WITH matching priority, like this:

function booking_meta( $post_id, $post, $update ) {

if ( get_post_type( $post_id ) !== 'booking' ) { return; }

// Update ACF fields
$object_id = get_the_ID();
$owner_id  = get_the_author_meta( 'ID', $post->post_author );
update_field( 'object', $object_id, $post_id );
update_field( 'owner', $owner_id, $post_id );

// Create post title
$first_name = wp_get_current_user()->user_firstname;
$new_title = get_the_title() . ' to ' . $first_name;
$post_data = array(
        'ID'         => $post_id,
        'post_title' => $new_title,);

remove_action( 'wp_insert_post', 'booking_meta', 99, 3 );
wp_update_post( $post_data );

}
add_action( 'wp_insert_post', 'booking_meta', 99, 3 );

techhipbettruvabetnorabahisbahis forumutaraftarium24edueduedueduedueduseduedusedusedu