APM ServiceMap, missing connection between 2 services

Hello,

we have an ELK cluster deployed on premise 8.16.2 and a 2 fleetservers that are collecting the traces coming from Opentelemetry collectors.

We have a simple scenario (#1) where our gateway (Service A) calls a backend API (Service B)

In Kibana, in Observability --> APM --> Services --> ServiceA --> Transaction s --> transaction we can see all the spans coming from both ServiceA and ServiceB with no issues.

If we switch to "Service Map" we see only a circle "Service A" but we miss the "Service B" circle and the arrow from "Service A" --> "Service B"

If we go to Observability --> APM --> ServiceMap and search by "trace.id : ID" we see both ServiceA and SerivceB circles but no arrow from A --> B

The "Service A" is a gateway which generates the root trace ID and propagate the 'traceparent' header, while "Service B" is a go API manually instrumented

We have another scenario (#2) where the ServiceMap is working fine "Service A" --> "java-auto-instrumented Service C" --> "java-auto-instrumented Service D"

We tried to look for the differences in the traces and span but we haven't found any particular difference.

Can someone tells us why in the Scenario#1 (the broken one) the Transaction Timeline is working fine while the Service Map cannot correlate the 2 services? Which information is the Service Map using to correlate the services?

Is there anything special we have to configure in our GO application? Since the timeline is working fine we thought that we did everything good but apparently something is missing.

If you need more info just ask

Thanks