I’m trying to programmatically disconnect a specific participant from an active conference call to trigger a state change in my OpenTelemetry pipeline. The goal is to capture the exact moment a user leaves the mix so I can end their specific trace span in Jaeger.
I’m using the Genesys Cloud Python SDK. Here’s the snippet:
from genestack.platform.client import api
conference_id = "conf-12345"
participant_id = "part-67890"
# Attempt to disconnect
try:
response = api.conversations_api.post_conversations_conferences_disconnect(
conference_id=conference_id,
body=genestack.platform.client.models.ConferenceParticipantDisconnectRequest(
participant_id=participant_id
)
)
print(f"Disconnect response: {response}")
except Exception as e:
print(f"Error: {e}")
The API call returns a 200 OK. The participant is definitely gone from the conference UI. However, when I look at the WebSocket notification stream for conversation:conference:participant:removed, the event arrives, but the context object inside the payload is missing the traceparent header I injected earlier via a Data Action.
I verified the injection works for standard API calls. Is the disconnect endpoint stripping the conversation context before emitting the webhook event? Or am I missing a parameter in the ConferenceParticipantDisconnectRequest to preserve the tracing metadata?
I’ve tried adding a custom X-Correlation-Id header to the HTTP client, but that doesn’t seem to propagate to the event payload either. The span for the disconnected user just hangs as ‘active’ in my backend.