Client or integration
Direct HTTP/API client
Area
Service lifecycle
Summary
On Windows 11 with the Task Scheduler service backend, a reboot/login can leave only the native OpenAI/Codex-login models blocked behind the process-wide native-main startup gate.
The proxy itself is healthy (/healthz returns 200), the model remains in the catalog, and non-native providers such as Anthropic continue returning 200. Native GPT requests fail locally with HTTP 503:
OpenCodex local native-main profile maintenance is active; retry this request
The state does not recover on its own. Running ocx restart (or pressing the dashboard/launcher restart control) immediately restores the same GPT model without reauthentication or configuration changes.
This has recurred after multiple Windows reboots. I expected startup recovery to reacquire native-main ownership and reopen admission automatically.
Reproduction
- Install OpenCodex as the per-user Windows Task Scheduler service (logon trigger).
- Use a valid native Codex/OpenAI login and confirm a native GPT model works.
- Reboot Windows and log in.
- Wait for the scheduled OpenCodex proxy to start.
- Confirm:
GET /healthz returns 200.
- Anthropic or another non-native provider still works.
- A native GPT Responses request (
stream: true, store: false, list-form input) returns local HTTP 503 with the native-main maintenance message.
- Wait/retry: the GPT-only 503 persists.
- Run
ocx restart.
- Send the same GPT request again. It returns 200 without login or config changes.
The Windows scheduled task currently reports AllowHardTerminate=True and MultipleInstances=IgnoreNew.
Version
2.26.0 (installed and running runtime both 2.26.0)
Codex runtime reported by OpenCodex: 0.148.0
Operating system
Windows 11 Home, version 10.0.26200, build 26200
Provider and model
OpenAI (Codex login / native main) / gpt-5.6-sol
Logs or error output
[17:25:23] opencodex service wrapper start
Previous session (PID <redacted>) did not shut down cleanly. Codex state restored from journal.
opencodex proxy running on http://localhost:10100
# /healthz remained HTTP 200.
17:26:37 | gpt-5.6-sol | openai | 503 | OpenCodex local native-main profile maintenance is active; retry this request
17:26:37 | gpt-5.6-sol | openai | 503 | OpenCodex local native-main profile maintenance is active; retry this request
17:26:48 | gpt-5.6-sol | openai | 503 | OpenCodex local native-main profile maintenance is active; retry this request
# Manual ocx restart:
[17:26:56] child exited with code 1; restarting
[17:27:03] opencodex service wrapper start
17:27:12 | gpt-5.6-sol | openai | 200
17:27:17 | gpt-5.6-sol | openai | 200
The exact internal blocked reason is not exposed in the request log. The installed source suggests the relevant path may be:
native-profile-startup.ts: owner acquisition/recovery updates the process-wide snapshot to blocked.
isNativeMainTrafficBlocked() keeps native traffic fenced while that snapshot remains blocked.
auth-context.ts converts this state to the generic native-main maintenance 503.
The preceding unclean-shutdown/journal-recovery line is consistently associated with the post-reboot failure, but I cannot confirm whether the specific retained reason is recovery-pending, owner-unavailable, or another startup block because it is not logged.
It would help if OpenCodex:
- logged the concrete native-main block reason;
- retried or completed recovery after stale journal/ownership cleanup; and
- ensured the Windows scheduler shutdown/startup path releases or reacquires native-main ownership cleanly.
Screenshots and supporting files
Screenshots are available if needed. They show repeated client-visible “Selected model is at capacity” errors, while OpenCodex request logs reveal the actual native-main maintenance 503.
Redacted configuration
{
"serviceBackend": "Windows Task Scheduler",
"trigger": "logon",
"allowHardTerminate": true,
"multipleInstances": "IgnoreNew",
"proxyPort": 10100,
"nativeProvider": "openai (Codex login)",
"nativeModel": "gpt-5.6-sol",
"otherProvidersRemainHealthy": true
}
Checks
Client or integration
Direct HTTP/API client
Area
Service lifecycle
Summary
On Windows 11 with the Task Scheduler service backend, a reboot/login can leave only the native OpenAI/Codex-login models blocked behind the process-wide
native-mainstartup gate.The proxy itself is healthy (
/healthzreturns 200), the model remains in the catalog, and non-native providers such as Anthropic continue returning 200. Native GPT requests fail locally with HTTP 503:The state does not recover on its own. Running
ocx restart(or pressing the dashboard/launcher restart control) immediately restores the same GPT model without reauthentication or configuration changes.This has recurred after multiple Windows reboots. I expected startup recovery to reacquire native-main ownership and reopen admission automatically.
Reproduction
GET /healthzreturns 200.stream: true,store: false, list-forminput) returns local HTTP 503 with the native-main maintenance message.ocx restart.The Windows scheduled task currently reports
AllowHardTerminate=TrueandMultipleInstances=IgnoreNew.Version
2.26.0 (installed and running runtime both 2.26.0)
Codex runtime reported by OpenCodex: 0.148.0
Operating system
Windows 11 Home, version 10.0.26200, build 26200
Provider and model
OpenAI (Codex login / native main) / gpt-5.6-sol
Logs or error output
The exact internal blocked reason is not exposed in the request log. The installed source suggests the relevant path may be:
native-profile-startup.ts: owner acquisition/recovery updates the process-wide snapshot toblocked.isNativeMainTrafficBlocked()keeps native traffic fenced while that snapshot remains blocked.auth-context.tsconverts this state to the generic native-main maintenance 503.The preceding unclean-shutdown/journal-recovery line is consistently associated with the post-reboot failure, but I cannot confirm whether the specific retained reason is
recovery-pending,owner-unavailable, or another startup block because it is not logged.It would help if OpenCodex:
Screenshots and supporting files
Screenshots are available if needed. They show repeated client-visible “Selected model is at capacity” errors, while OpenCodex request logs reveal the actual native-main maintenance 503.
Redacted configuration
{ "serviceBackend": "Windows Task Scheduler", "trigger": "logon", "allowHardTerminate": true, "multipleInstances": "IgnoreNew", "proxyPort": 10100, "nativeProvider": "openai (Codex login)", "nativeModel": "gpt-5.6-sol", "otherProvidersRemainHealthy": true }Checks