Invalid SDP error on new call to SIP endpoint

The previously reported SIP SDP error is happening again. We are dead in the water trying to place new SIP calls into gpt-realtime.

SIP/2.0 400 Bad Request
Contact: sips:[my email]:5061

{
“error”: {
“message”: “Invalid SDP offer.”,
“type”: “invalid_request_error”,
“code”: “invalid_offer”,
“param”: “”
}
}

4 Likes

Same here. We started seeing what appears to be a related SIP / Realtime issue around March 24, 2026 at approximately 08:30 JST (March 23, 2026 23:30 UTC).

Our setup is Twilio SIP → OpenAI Realtime API → webhook to Google Cloud Run.

In our case, we are not seeing the normal OpenAI webhook traffic reach our Cloud Run service for failed calls, so the failure seems to happen before our usual handling flow even starts. Because the webhook never arrives, we also see no /accept flow and no sideband WebSocket connection attempt in our logs.

This had been working before, and we did not deploy any relevant code or configuration changes around the time the issue started. We are also already using the GA Realtime setup with gpt-realtime, so this does not appear to line up with a scheduled beta migration issue.

This makes us suspect there may be a broader regression affecting new inbound SIP calls / SIP call handling on the OpenAI side, not just a single malformed SDP case.

@Sean-Der Could you please take a look? This seems broader than a single SDP formatting issue and may be affecting new inbound SIP calls starting around 2026-03-24 08:30 JST.

2 Likes

We are seeing what looks like the same issue in Japan on March 24, 2026 (JST).

Setup:

  • inbound PSTN call
  • Twilio <Dial><Sip> to OpenAI SIP endpoint
  • local/dev environment
  • webhook configured on the OpenAI side

We reduced the TwiML to a minimal repro and still get the same failure:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say language="ja-JP" voice="Polly.Mizuki">Connecting you now. Please hold.</Say>
  <Dial callerId="+81xxxxxxxxxx">
    <Sip statusCallback="https://example.com/twilio/call-status?probe=openai-sip">sip:proj_xxxxx@sip.api.openai.com;transport=tls</Sip>
  </Dial>
</Response>

We also tested:

  • with and without callerId

  • without any extra SIP query params

  • without X-To

  • with multiple different OpenAI project IDs

Result is unchanged:

  • the OpenAI webhook is never fired

  • the Twilio SIP child leg fails immediately

  • Twilio reports SipResponseCode: 400

  • Twilio maps it to ErrorCode: 13224

  • Twilio message is invalid phone number format

Important point:
this happens even with the bare SIP URI only:
sip:proj_xxxxx@sip.api.openai.com;transport=tls

So at least in our case, this does not seem to be caused by custom SIP params on our side.

Because the webhook is never reached, it looks like the INVITE is being rejected at SIP ingress before realtime.call.incoming.

I also noticed at least one other report from Japan, so this may not be an isolated case. It would be helpful to know whether this could be:

  • an invalid SDP / SDP negotiation issue

  • a Japan-specific carrier / number-format / caller identity issue

  • or a broader SIP ingress regression

1 Like

We are also experiencing the same issue. There have been no changes to the IP-PBX configuration or the webhook endpoint, but calls are not being connected.

1 Like

@OpenAIAPIhelper @OpenAI_Support @Sean-Der Please check it, seems all around the world SIP isn’t working at all.

1 Like

Hi,

We are also got this.

{
“error”: {
“message”: “Invalid SDP offer.”,
“type”: “invalid_request_error”,
“code”: “invalid_offer”,
“param”: “”
}
}

All calls are rejected.

/ Magnus

1 Like

Same as in Italy,

@Sean-Der @OpenAI_Support please give us a feedback

2 Likes

Adding to this thread — I did some independent testing and can confirm the same behavior with additional detail.

Test setup: Raw Python TLS socket sending SIP INVITE directly to sip.api.openai.com:5061, no SIP stack, so the SDP content is fully controlled.

Results across SDP variations

SDP type Response sequence
No SDP body 100 Trying400 (no body)
RTP/SAVP with SRTP/crypto 100 Trying400 (no body)
RTP/AVP PCMU/PCMA 100 Trying180 Ringing400 invalid_offer
RTP/AVP Opus 100 Trying180 Ringing400 invalid_offer
DTLS-SRTP (UDP/TLS/RTP/SAVPF) 100 Trying180 Ringing400 invalid_offer

Key observations

  1. RTP/AVP offers (PCMU, PCMA, Opus) all reach 180 Ringing before being rejected — indicating the SIP ingress accepts the offer structure and attempts to route it, but something fails before the webhook fires.
  2. The "param": "" field in the error JSON is empty — if a specific SDP field were invalid, we’d expect a non-empty param. This points away from an SDP formatting problem.
  3. The webhook is never triggered regardless of SDP content or project ID.
  4. Multiple project IDs tested — all behave identically.

Conclusion

The rejection is happening at OpenAI’s SIP ingress layer, after initial routing but before webhook dispatch. This doesn’t appear to be a caller-side configuration issue. Looks like a regression on OpenAI’s end.

2 Likes

Hi, Same here in belgium. SDP incorrect as result.
Probably something broken in the stack sip on openai’s side.

@Sean-Der

1 Like

Same here:
{
“error”: {
“message”: “Invalid SDP offer.”,
“type”: “invalid_request_error”,
“code”: “invalid_offer”,
“param”: “”
}
}

2 Likes

We too in Italy encounter the same problem: when transferring the SIP flow to Openai, the response is 400.

1 Like

I’m in italy too

Forgot to mention: we are in italy too

1 Like

Same in belgium, here

x ACK x x “error”: {
x qqqqqqqqqqqqqqqqqqqqqqqqqq> x x “message”: “Invalid SDP offer.”,
x x x “type”: “invalid_request_error”,
x x x “code”: “invalid_offer”,
x x x “param”: “”
x x x }
x x x}

1 Like

we have the same problem too

2 Likes

@OpenAIAPIhelper @OpenAI_Support @Sean-Der would appreciate your help. Realtime SIP is down for us too and impacting our customers in EU and UK.

4 Likes

Hello, same here from Italy.

Nothing changed on the config server side but each call we receive:

{
“error”: {
“message”: “Invalid SDP offer.”,
“type”: “invalid_request_error”,
“code”: “invalid_offer”,
“param”: “”
}
}

3 Likes

At 11 hours now, is there any other way to engage support?

1 Like

(or any SIP alternatives from other vendors?)

1 Like

Even Gandalf can’t solve this! (nice to meet you)

LOL. Nice to meet you too