快速结论:这个报错通常出现在 OpenAI Python SDK 的 Realtime 连接尚未真正建立时,就通过 connection_manager.send() 发送包含 omit / NotGiven 字段的 dict 事件;此时 SDK 走了 json.dumps() 而不是 maybe_transform(),导致无法序列化。优先排查:是否在预连接阶段发送了 dict 事件,以及是否使用了 omit。
适用环境:Issue 中已确认的工具为 OpenAI Python SDK(Realtime 相关接口,含同步与异步客户端);原始复现使用 model="gpt-4o-realtime-preview"。Issue 未提供操作系统、Python、CUDA、显卡或具体 SDK 版本信息。
最快修复方案:Issue 中明确验证的修复是升级到包含 PR #3944 的版本;该 PR 让“预连接阶段排队发送的 Realtime 事件”与“已连接后的 send()”使用相同的序列化处理逻辑,同步和异步客户端均已修复。
注意事项:如果无法升级 SDK,可优先尝试避免在预连接阶段发送带 omit / NotGiven 的 dict 事件,或等待连接建立后再调用 send();但这属于规避思路,Issue 未将其作为已验证的正式修复。Issue 也未列出受影响的版本范围,因此升级前需要自行确认目标版本已包含 #3944。
问题场景
用户使用 OpenAI Python SDK 的 Realtime 功能:先通过 client.realtime.connect(model="gpt-4o-realtime-preview") 获取 AsyncRealtimeConnectionManager / RealtimeConnectionManager,然后在这个 manager 上直接调用 send(),传入一个 dict 事件,例如 {"type": "response.cancel", "event_id": omit}。问题发生在连接真正建立之前(pre-connect)的发送路径上。
报错原文
TypeError: Object of type Omit is not JSON serializable
原因分析
根据 Issue 描述,AsyncRealtimeConnectionManager.send() / RealtimeConnectionManager.send() 对 dict payload 直接调用了 json.dumps(event)。但连接建立之后,connection.send() 使用的是 maybe_transform(),它会正确剥离 Omit / NotGiven 这类特殊标记。由于预连接路径缺少这层转换,omit 被原样交给 JSON 序列化器,于是抛出 Object of type Omit is not JSON serializable。
根因属于 SDK 内部序列化路径不一致,而不是用户事件内容本身写错。
环境排查
- 确认使用的是 OpenAI Python SDK,并且调用了 Realtime 相关接口。
- 确认触发代码是否在连接建立前对
RealtimeConnectionManager/AsyncRealtimeConnectionManager调用send()。 - 确认传入的 dict 事件中是否包含
omit或NotGiven字段。 - 确认当前 SDK 版本是否已包含 PR #3944 的修复。
- 确认同步客户端和异步客户端是否都受影响(Issue 中两者均被提到,且 #3944 对两者做了修复)。
- 对照连接建立后使用
connection.send()的路径,看是否能正常发送同一事件。
解决步骤
- 升级 OpenAI Python SDK 到包含 PR #3944 的版本,这是 Issue 中明确验证过的修复方式。
- 升级后,用原始复现代码验证:
manager.send({"type": "response.cancel", "event_id": omit})不再抛出序列化错误。 - 如果暂时不能升级,可优先尝试规避:不要在 pre-connect 阶段发送带
omit/NotGiven的 dict 事件;等连接建立后再使用connection.send()发送。 - 如果业务必须预连接发送,则检查事件中是否可以直接省略该字段,而不是显式使用
omit。 - 同步和异步两种调用方式都要分别验证,确保使用的是同一套修复后的序列化处理逻辑。
验证方法
使用原始复现代码运行,确认不再出现 TypeError: Object of type Omit is not JSON serializable;同时确认事件被正确发送或被正常排队,而不是在序列化阶段崩溃。对于异步客户端,也建议用相同场景验证一次。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[BUG]: Inference with Qwen3:4b and Qwen3:8b is slower than with gemma4:e4b](https://www.chat-gpts.plus/wp-content/uploads/2026/09/6440-0f2d145e-768x403.jpg)
![[Bug]: MCP on host mode returns empty dataset ids](https://www.chat-gpts.plus/wp-content/uploads/2026/09/13183-415cd908-768x403.jpg)
