{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreieh4glzquzn3rudd34pnomumox2jrdnumab5evs3vndcwp3ypbtdq",
    "uri": "at://did:plc:lk3jfj3zq4k4wxnk474axylu/app.bsky.feed.post/3mlrvudqidaf2"
  },
  "path": "/t/realtime-api-sip-inbound-calls-failing-again-before-webhook-dispatch/1380763?page=2#post_21",
  "publishedAt": "2026-05-14T01:44:09.000Z",
  "site": "https://community.openai.com",
  "textContent": "We found the root cause on our side: the payload we were sending to `/v1/realtime/calls/{call_id}/accept` was malformed or invalid.\n\nHowever, the main issue is that the `/accept` endpoint was still returning HTTP 200 even though the payload was not valid enough to successfully establish the SIP/Realtime session.\n\nThis made troubleshooting very difficult because the flow looked successful from the HTTP side:\n\n  1. SIP INVITE reached OpenAI.\n\n  2. OpenAI dispatched the `realtime.call.incoming` webhook.\n\n  3. Our server called `/v1/realtime/calls/{call_id}/accept`.\n\n  4. `/accept` returned HTTP 200.\n\n  5. After that, SIP failed with `400 Bad Request` / `error code: 504`.\n\n  6. The WebSocket connection returned `404 call_id_not_found`.\n\n\n\n\nThe actual problem was the accept payload, but because `/accept` returned 200, the failure appeared to be a SIP/WebSocket/session propagation issue.\n\nOpenAi should to improve the validation and error handling for the `/accept` endpoint\n\nIf the accept payload is invalid or malformed, the endpoint should return a clear 4xx response with details about the invalid field, instead of returning 200 and later failing the SIP session indirectly.\n\nThis would make the Realtime SIP integration much easier to debug and would prevent misleading downstream errors such as SIP `400 / error code: 504` and WebSocket `call_id_not_found`.\n\nPS: Basically this problem was generated by the main INCIDENT after our team try to solve first problem that was not us.",
  "title": "Realtime API SIP inbound calls failing again before webhook dispatch"
}