422 on WebRTC signaling provisioning payload validation in Go

POST /api/v2/webrtc/signaling/endpoints is returning a 422 Unprocessable Entity with code: "signaling_validation_failed" when the Go client pushes the signaling provisioning payload. The JSON includes the SDP templates and codec preference matrices, but the network topology directives for the STUN/TURN server verification pipelines seem to be clashing with the browser compatibility constraints. I’ve got the ICE candidate gathering logic running, yet the concurrent session limits keep flagging a mismatch before the asynchronous job processing even spins up. The automatic retry mechanisms aren’t catching the transient service unavailability, so the endpoint registration just stalls. Here’s the payload structure causing the headache:

{
 "sdpTemplate": "v=0\no=- 12345...",
 "codecs": ["opus", "g722"],
 "topology": {"turn": "turn.prod.genesys.cloud"}
}

I’ve tried narrowing the scope, but nothing sticks.

  1. Verified the OAuth token management has the right webrtc:manage scope.
  2. Reduced the concurrent session limits to a single connection to rule out throttling.
  3. Added explicit webhook callbacks to the external telecom monitoring platform, but the registration status never updates to active.
    The signaling validation logic feels like it’s rejecting the secure media path establishment without a clear reason. The audit logs show a success, yet the endpoint stays down.