Posts not linking as translations even after API call returns success

I’m automating WordPress post creation using Polylang and n8n.
I first create the EN post, then the PT one, and finally send a POST request to a custom endpoint (/wp-json/.../link-translations) with:

{
  "translations": { "en": 1234, "pt": 5678 }
}

In the PHP callback, I run:

pll_set_post_language(1234, 'en');
pll_set_post_language(5678, 'pt');
pll_save_post_translations(['en' => 1234, 'pt' => 5678]);

The API response returns “success: true”, but in the editor the posts are still not linked as translations.
The slugs (en, pt) are correct, the user has permission, and I’ve already tested adding a delay.

Has anyone run into this or knows what could be preventing pll_save_post_translations from working even without throwing any error?