OpenAI Responses protocol, you may encounter an error like the following (common with agent tools such as Codex CLI / OpenCode):
reasoning.encrypted_content. This field is used in stateless scenarios to pass “encrypted reasoning state fragments” between multiple turns of requests, improving multi-turn consistency.
When do you run into this problem?
Typical triggering scenarios:- You use a tool such as Codex / OpenCode to call the
Responsesendpoint - The tool automatically adds
include: ["reasoning.encrypted_content"]to the request, and in the next request sends back thereasoning.encrypted_content(or thetype:"reasoning"item) returned last time - Meanwhile, Poixe, as an aggregation gateway, schedules across multiple Keys / multiple organizations (org/project) for capacity and stability
This causes the “encrypted fragment generated in the previous turn” to mismatch the “organization/Key actually hit in the next turn”, triggering a verification failure (the
organization_id did not matchyou see)
How Poixe handles it: filtering encrypted-reasoning fields
To avoid this kind of hard error that “blows up starting from the second turn”, Poixe makes a compatibility trade-off onResponses requests, mainly including:
-
Removing
include.reasoning.encrypted_contentfrom the request (so the upstream does not return this field) -
Cleaning up reasoning fragments in the historical items of the request body
- Deleting items with
type: "reasoning", as well as allencrypted_contentfields
- Deleting items with
Impact and notes
-
Filtering does not “delete your conversation content”; your
input/messagesare still forwarded normally -
However, in stateless multi-turn flows, without the “reasoning continuation boost” from
reasoning.encrypted_content, some agent tasks may show:- Reduced multi-turn consistency
- Repeated planning and a stronger sense of lost context (this is a side effect of the inherent conflict between the upstream mechanism design and the proxy architecture)
Need help?
If you confirm that the missing field causes a major functional problem (for example, Codex/OpenCode multi-turn does not work properly or quality clearly degrades), please contact us and we will evaluate a better compatibility strategy together.Contact Us
Report compatibility issues or suggest improvements
References
Official documentation (recommended reading first)
-
Responses API: the include parameter and related fields
https://platform.openai.com/docs/api-reference/responses/create#responses_create-include -
Reasoning guide: reasoning outputs and the purpose of
encrypted_content
https://platform.openai.com/docs/guides/reasoning#encrypted-reasoning-items -
Migrating to Responses: when to use stateful vs. stateless, and notes on
encrypted_content
https://platform.openai.com/docs/guides/migrate-to-responses#4-decide-when-to-use-statefulness -
Cookbook: reasoning items example (Responses API)
https://developers.openai.com/cookbook/examples/responses_api/reasoning_items
Azure reference (corroboration of the same concept)
- Azure OpenAI Responses: stateless multi-turn and related fields
https://learn.microsoft.com/zh-cn/azure/ai-foundry/openai/how-to/responses?view=foundry-classic&utm_source=chatgpt.com&tabs=python-key#encrypted-reasoning-items
Community discussions / Issues (troubleshooting references)
-
Codex official repo discussion thread (consolidated discussion of related problems)
https://github.com/openai/codex/issues/8120 -
OpenCode community feedback: second-turn / resumed-chat problems (corroboration)
https://github.com/anomalyco/opencode/issues/5104?utm_source=chatgpt.com -
new-api project: PR proposing removal of reasoning (reference for engineering-side handling)
https://github.com/QuantumNous/new-api/pull/2662