codex models fail with unsupported_api_for_model when model list fetch is rate-limited
- 主要语言
- Shell
- 星标
- 11.2k
- 派生
- 1.9k
- 平均合并
- 14 小时 16 分钟
- 30 天内合并 PR
- 6
描述
### Describe the bug
When multiple concurrent `copilot` processes use `gpt-5.3-codex`, they fail with `unsupported_api_for_model` because the CLI sends requests to `/chat/completions` instead of `/responses`.
The issue occurs when the `listModels` API call is rate-limited (HTTP 429). A single CLI instance works fine because the model list loads successfully.
**Root cause (from inspecting the 0.0.415 bundle):**
The responses API routing in `KXe.getCompletionWithTools` requires both conditions to be true:
```javascript
U7e(settings, clientOptions) && model?.supported_endpoints?.includes("/responses")
```
- `U7e()` checks `clientOptions.thinkingMode || featureFlag("copilot_swe_agent_enable_responses_api")`
- `model` comes from `chatClient.modelPromise` — a model list fetch from the API
When the model list fetch fails (HTTP 429), `model` is null, so `supported_endpoints?.includes("/responses")` is falsy. The CLI falls back to `/chat/completions`, which rejects codex models. It then retries the same failing endpoint 5 times without re-attempting the model list fetch.
### Affected version
0.0.415
### Steps to reproduce the behavior
1. Run multiple concurrent `copilot -p` processes with `--model gpt-5.3-codex`
2. The `listModels` endpoint gets rate-limited (429)
3. All instances fall back to `/chat/completions` and fail with:
```json
{"error":{"message":"model \"gpt-5.3-codex\" is not accessible via the /chat/completions endpoint","code":"unsupported_api_for_model"}}
```
### Expected behavior
When the model list is unavailable, the CLI should either:
- Handle the `unsupported_api_for_model` error by retrying with the `/responses` endpoint
- Retry the model list fetch with backoff before giving up
- Treat `thinkingMode` alone (without model metadata) as sufficient to route to `/responses`
### Additional context
From the process logs:
```
[ERROR] Error loading models: Error: Failed to list models: 429
```
Followed by 6 consecutive failures on `/chat/completions` with `unsupported_api_for_model`, then exit code 1.
贡献指南
评估
这个 Issue 还没有评估数据。