fix(realtime): skip invalid input_text parts in user input conversion#3243
Merged
seratch merged 1 commit intoopenai:mainfrom May 8, 2026
Merged
Conversation
Previously, when a dict user_input contained an input_text part with a missing or non-string `text` field, the conversion appended a Content(type="input_text", text=None) item, producing a payload the realtime API rejects. Skip those parts (matching the existing behavior for input_image with an invalid image_url) so only valid content reaches the wire. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
Member
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When a
RealtimeModelSendUserInputevent carries a dictuser_inputwhosecontentincludes aninput_textpart with a missing or non-stringtextfield,_ConversionHelper.convert_user_input_to_conversation_itemcurrently appends aContent(type="input_text", text=None)item. The realtime API rejects such payloads.This change skips those parts entirely, matching the existing forward-compat behaviour for
input_imagewith an invalidimage_url. Only well-formed parts reach the wire.Test plan
test_convert_user_input_dict_skips_invalid_input_text_partscovering missing-text and non-string-text cases plus a valid sibling (only the valid one survives).pytest tests/realtime— 233 passed.ruff checkclean on touched files.