openai / openai/openai-python

Error "Item ‘rs_ABCD’ of type ‘reasoning’ was provided without its required..." when using CodeInterpreter

Open
#2,561 6 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.