My scenario is that I have created different conversations under different project directories. I need a single conversation to call the conversations in these different directories in order to fulfill my requirements. However, when I execute it, I get the following error:
“function_call_output requires call_id on HTTP requests; continuation via previous_response_id is only supported on Responses WebSocket v2”
The error means your implementation is mixing two different continuation mechanisms.
If you use HTTP (POST /v1/responses)
When the parent agent returns a function call, execute the child-conversation call in your application, then continue the parent response by sending the function output with the same call_id:
Do not omit call_id. It must match the call_id from the original function_call.
If you use Responses WebSocket mode
Use a persistent Responses WebSocket connection and inject the result into the active response using response.inject, rather than submitting function_call_output over HTTP. Include the response ID returned by response.created, and use the required beta header:
The HTTP call_id fix handles the immediate error, but I’d also keep the conversations under each project directory fully isolated. Give each child conversation its own independent previous_response_id lineage, then pass only its final serialized text back as the parent’s function_call_output.
For parallel calls, keep a call_id-to-child mapping so every result is attached to the right call in the parent’s continuation request. Don’t carry the child’s continuation state into the parent request. How are you currently tracking those IDs?