Problem
When Claude Code sends a request with reasoning.summary parameter to the proxy, and the target model is gpt-5.3-codex-spark via a ChatGPT/Codex OAuth profile, the parameter is forwarded as-is to the Codex Responses endpoint, which rejects it:
API Error: 400 Unsupported parameter: 'reasoning.summary' is not supported with the 'gpt-5.3-codex-spark' model.
Expected behavior
claudex should strip reasoning.summary (and potentially other Anthropic-specific thinking/reasoning parameters) before forwarding to the Codex Responses API, similar to how strip_params = "auto" handles temperature/top_p/top_k for chatgpt.com endpoints.
Setup
- claudex v0.9.49
- Profile:
codex-sub (OpenAIResponses, ChatGPT OAuth)
- Claude Code v2.1.168 with per-model endpoint routing (custom patch)
ANTHROPIC_MODEL_BASE_URL_gpt_5_3_codex_spark pointed at claudex proxy
- Claude Code effort level: high (default)
Reproduction
claudex-config proxy start -p 51456 &
curl -s "http://127.0.0.1:51456/proxy/codex-sub/v1/messages" \
-H "content-type: application/json" \
-H "x-api-key: passthrough" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "gpt-5.3-codex-spark",
"max_tokens": 100,
"stream": true,
"reasoning": {"summary": "auto"},
"messages": [{"role": "user", "content": "hi"}]
}'
Problem
When Claude Code sends a request with
reasoning.summaryparameter to the proxy, and the target model isgpt-5.3-codex-sparkvia a ChatGPT/Codex OAuth profile, the parameter is forwarded as-is to the Codex Responses endpoint, which rejects it:Expected behavior
claudex should strip
reasoning.summary(and potentially other Anthropic-specific thinking/reasoning parameters) before forwarding to the Codex Responses API, similar to howstrip_params = "auto"handlestemperature/top_p/top_kfor chatgpt.com endpoints.Setup
codex-sub(OpenAIResponses, ChatGPT OAuth)ANTHROPIC_MODEL_BASE_URL_gpt_5_3_codex_sparkpointed at claudex proxyReproduction