Why Opentelemetry spans with same trace ids could have different transaction ids in the Elastic APM?

I see a strange behavior for Opentelemetry integration. We have applications in PHP and Go which are linked with GRPC. I’ve made a manual Opentelemetry integration for PHP (with GRPC transport). However there is a strange situation when some of spans are not linked (but I’m absolutely sure that they should) despite the same trace id. Metadata tab for them shows different transaction ids but the same trace id. What could be a reason for such a behavior? I am able to find all of them by trace id on APM’s Traces tab. Also, in some endpoints (also PHP http -> PHP GRPC Client -> Go) everything is correct: I see the same transaction id, same trace id and all the spans for the operation on one screen.

enter image description here