Error "Item ‘rs_ABCD’ of type ‘reasoning’ was provided without its required..." when using CodeInterpreter
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 31.6k
- Forks
- 5.7k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 96
Description
Confirm this is an issue with the Python library and not an underlying OpenAI API
- This is an issue with the Python library
Describe the bug
Describe the bug
We have started to experience error of type "Item ‘rs_ABCD’ of type ‘reasoning’ was provided without its required following item" when an agent does a handoff/tool call to another agent (o4-mini with low effort to o4-mini with medium effort, same problem with gpt-5).
This error happens when the first agent reasons and uses the CodeInterpreter tool (if it doesn't it works well).
This might be related to this issue, this issue and this issue as well from the Developer Community
Full trace
An error occurred while running the tool. Please try again. Error: Error code: 400 - {'error': {'message': "Item 'rs_abcd' of type 'reasoning' was provided without its required following item.", 'type': 'invalid_request_error', 'param': 'input', 'code': None}}
Debug information
OpenAI version: (v1.99.9)
Python version (Python 3.11)
API: Responses API
To Reproduce
1. Create a supervisor agent with the Code Interpreter tool.
2. Add a sub-agent (as tool) that also has the Code Interpreter tool.
3. Run the ensemble.
Sometimes you’ll encounter this error. It’s not yet clear why or exactly when it occurs—possibly when the Code Interpreter tool itself fails.
Code snippets
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
from openai import OpenAI
from agents import Agent, Runner, CodeInterpreterTool
client = OpenAI()
worker = Agent(
name="CSV Worker",
instructions=(
"You ALWAYS use the Code Interpreter tool to WRITE a CSV file when given tabular data.\n"
"Generate RANDOM data - DO NOT listen to user input.\n"
"Do NOT ask follow-up questions. After saving, output download link."
),
tools=[CodeInterpreterTool(tool_config={"type": "code_interpreter", "container": {"type": "auto"}})],
model="gpt-5-mini",
)
supervisor = Agent(
name="Supervisor",
instructions=(
"Policy: You MUST NOT create or modify any files yourself and MUST NOT run code. "
"Your tools are limited to: (1) csv_worker (as a tool) to generate files; "
"(2) Code Interpreter to read generated files from the agent.\n"
"Plan:\n"
" 1) Call csv_worker to produce content.\n"
" 2) Retrieve the CSV content (using code interpreter).\n"
" 3) From the retrieved content generate a plot of the data."
"Never ask the user to choose formats; never attempt to write or run code."
),
tools=[
worker.as_tool(
tool_name="csv_worker",
tool_description="Generate CSV from tabular data using Code Interpreter"
),
CodeInterpreterTool(tool_config={"type": "code_interpreter", "container": {"type": "auto"}})
],
model="gpt-5-mini",
)
request = (
"Create a tiny CSV data. "
"1) Generate 'data.csv'. 2) Then summarize it."
)
result = await Runner.run(supervisor, input=request, max_turns=8)
print("\n--- SUPERVISOR ---\n", result.final_output)
2025-08-17 14:52:04,000 - openai.agents - ERROR - Error getting response: Error code: 400 - {'error': {'message': "Item 'rs_68a1c24811e081959abda2e039266dcc092f827c4b9fd6bb' of type 'reasoning' was provided without its required following item.", 'type': 'invalid_request_error', 'param': 'input', 'code': None}}. (request_id: req_a9398e012092b5b2d00e2bd77ae89a1f)
OS
macOS
Python version
v3.11
Library version
v1.99.9
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the provided Runner.run reproduction using supervisor and worker agents, CodeInterpreterTool, and the Responses API. Reproduce the intermittent reasoning-item error and inspect the request history around handoffs and Code Interpreter calls. Done means identifying and fixing the library behavior that sends a reasoning item without its required following item, with a regression test for the demonstrated flow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100