OpenCodeReview Version
v1.8.0 (commit: e670b3b, built: 2026-07-28T02:27:56Z)
Operating System
Windows
Installation Method
npm (global)
LLM Provider
OpenAI
Bug Description
When the built-in OpenAI provider is configured with gpt-5.6-terra, ocr review completes the planning phase but fails when a review subtask sends function tools.
The request is sent to /v1/chat/completions. OpenAI then returns a 400 error stating that function tools with reasoning effort are not supported for this model through Chat Completions and that /v1/responses should be used instead.
This is difficult for a new user to diagnose because:
gpt-5.6-terra is not included in the built-in OpenAI model presets.
- The configuration flow does not explain that GPT-5.6 models need the Responses API for the tool-calling workflow used by
ocr review.
- The review plan can complete successfully before the tool-using subtask fails.
- I could not find a FAQ entry explaining this error or how to configure the Responses API.
The same support is needed for the current GPT-5.6 variants:
gpt-5.6-luna
gpt-5.6-terra
gpt-5.6-sol
Steps to Reproduce
- Run
ocr config provider.
- Select the built-in OpenAI provider and configure an OpenAI API key.
- Run
ocr config model.
- Manually add
gpt-5.6-terra, because it is not present in the built-in model list.
- Run
ocr review on a repository containing reviewable changes.
- Wait for the review plan to complete.
- Observe that the following tool-using subtask fails with a 400 response from
/v1/chat/completions.
Expected Behavior
A user selecting a supported GPT-5.6 model should be able to run ocr review without manually knowing which OpenAI API protocol is required.
Ideally, the built-in OpenAI configuration should:
- Include
gpt-5.6-luna, gpt-5.6-terra, and gpt-5.6-sol.
- Use the Responses API for these models when no explicit protocol override is configured.
- Preserve the existing behavior of other OpenAI models and configurations.
At minimum, if the selected provider and model combination cannot support the tool-calling workflow, the configuration or connectivity test should fail early with an actionable message instead of failing after the review plan has completed.
Logs / Error Output
[ocr] Plan completed for path/to/file
[ocr] Subtask error for path/to/file: LLM completion error: POST "https://api.openai.com/v1/chat/completions": 400 Bad Request {
"message": "Function tools with reasoning_effort are not supported for gpt-5.6-terra in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'.",
"type": "invalid_request_error",
"param": "reasoning_effort",
"code": null
}
Additional Context
OpenCodeReview already supports the Responses API through the openai-responses protocol, introduced in:
Documentation for the openai-responses protocol is also being tracked in:
However, this capability is not discoverable through the normal built-in OpenAI provider and model-selection flow. The current FAQ also does not provide troubleshooting guidance for this error. This leaves new users without an actionable recovery path after the failure.
One possible solution would be to add the three exact GPT-5.6 model IDs to the built-in OpenAI provider and associate them with the Responses protocol through explicit per-model metadata. Existing models could continue using the provider's current default protocol, and an explicitly configured protocol could continue to take precedence.
Another option would be a separate built-in OpenAI Responses provider, although users selecting the ordinary OpenAI provider could still encounter the same configuration trap.
Setting reasoning_effort to none may bypass this particular API restriction, but it disables reasoning rather than addressing the protocol mismatch. Adding a first-class reasoning_effort setting is not part of this report.
I have not started an implementation yet and would be happy to submit a focused change with tests and documentation after the preferred approach is confirmed.
OpenCodeReview Version
v1.8.0 (commit: e670b3b, built: 2026-07-28T02:27:56Z)
Operating System
Windows
Installation Method
npm (global)
LLM Provider
OpenAI
Bug Description
When the built-in OpenAI provider is configured with
gpt-5.6-terra,ocr reviewcompletes the planning phase but fails when a review subtask sends function tools.The request is sent to
/v1/chat/completions. OpenAI then returns a 400 error stating that function tools with reasoning effort are not supported for this model through Chat Completions and that/v1/responsesshould be used instead.This is difficult for a new user to diagnose because:
gpt-5.6-terrais not included in the built-in OpenAI model presets.ocr review.The same support is needed for the current GPT-5.6 variants:
gpt-5.6-lunagpt-5.6-terragpt-5.6-solSteps to Reproduce
ocr config provider.ocr config model.gpt-5.6-terra, because it is not present in the built-in model list.ocr reviewon a repository containing reviewable changes./v1/chat/completions.Expected Behavior
A user selecting a supported GPT-5.6 model should be able to run
ocr reviewwithout manually knowing which OpenAI API protocol is required.Ideally, the built-in OpenAI configuration should:
gpt-5.6-luna,gpt-5.6-terra, andgpt-5.6-sol.At minimum, if the selected provider and model combination cannot support the tool-calling workflow, the configuration or connectivity test should fail early with an actionable message instead of failing after the review plan has completed.
Logs / Error Output
Additional Context
OpenCodeReview already supports the Responses API through the
openai-responsesprotocol, introduced in:Documentation for the
openai-responsesprotocol is also being tracked in:However, this capability is not discoverable through the normal built-in OpenAI provider and model-selection flow. The current FAQ also does not provide troubleshooting guidance for this error. This leaves new users without an actionable recovery path after the failure.
One possible solution would be to add the three exact GPT-5.6 model IDs to the built-in OpenAI provider and associate them with the Responses protocol through explicit per-model metadata. Existing models could continue using the provider's current default protocol, and an explicitly configured protocol could continue to take precedence.
Another option would be a separate built-in OpenAI Responses provider, although users selecting the ordinary OpenAI provider could still encounter the same configuration trap.
Setting
reasoning_efforttononemay bypass this particular API restriction, but it disables reasoning rather than addressing the protocol mismatch. Adding a first-classreasoning_effortsetting is not part of this report.I have not started an implementation yet and would be happy to submit a focused change with tests and documentation after the preferred approach is confirmed.