You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows Codex Workspace fails with helper_unknown_error: setup refresh had errors #35353
Residual analysis for #35353 (helper_unknown_error: setup refresh had errors on Windows Workspace) under docs/contributing.md — invitation-only. No unsolicited PR. Related: #35349 (Setup Incomplete loop) shares the setup binary surface.
Root-cause hypothesis (two OSS levers, one symptom)
Windows sandbox setup has a hard bail on any non-empty refresh error list ("setup refresh had errors"), and untyped/anyhow failures are folded into HelperUnknownError, which wires as the non-actionable string helper_unknown_error. Users therefore see a single opaque code even when logs know more.
Verified at HEAD 4c43465133 under codex-rs/windows-sandbox-rs (Apache OSS path):
1. Refresh hard-fail (AD). codex-rs/windows-sandbox-rs/src/bin/setup_main/win.rs — when refresh_only && !refresh_errors.is_empty():
logs setup refresh completed with errors: {refresh_errors:?}
then anyhow::bail!("setup refresh had errors")
Partial refresh problems become a full non-zero setup exit. The bail string itself is generic; detail lives in the log line immediately above, not in the typed failure code path unless something re-maps it.
2. Unknown-error fold (AF).
Same file, setup error handling:
let failure = extract_setup_failure(err).map(...).unwrap_or_else(|| SetupFailure::new(SetupErrorCode::HelperUnknownError, err.to_string()));
Any error without a typed SetupFailure becomes HelperUnknownError. Wire map in setup_error.rs: HelperUnknownError => "helper_unknown_error".
So a refresh bail (or other untyped chain) that does not carry a structured SetupFailure collapses to the exact symptom string in this issue title.
Desktop “Setup Incomplete” chrome may be Electron/closed; treat UX copy as PARTIAL and keep the OSS residual focused on helper codes + refresh policy.
4. Distinct from #17459 / SEC_E_NO_CREDENTIALS-class token issues.
Different subsystem (windows-sandbox setup helper vs credential/token restricted flags).
Ranked fix outline (all OSS):
Map refresh failures to a specificSetupErrorCode (e.g. HelperSetupRefreshFailed) instead of Unknown — include aggregated refresh_errors in SetupErrorReport.message.
Soften policy: do not hard-fail the entire setup on non-critical refresh roots when CLI exec is still viable (or classify critical vs non-critical refresh errors).
Always surface log path + first concrete root error string in the report message (today the useful list is log-only).
Preserve typed extract_setup_failure for known ACL/firewall/user-provision paths so they never fall through to Unknown.
Fail-first tests: (1) non-empty refresh_errors in refresh_only mode → typed code ≠ helper_unknown_error (or message contains the logged errors); (2) known SetupFailure still round-trips its code; (3) untyped anyhow still produces a message that includes err.to_string(), not an empty unknown.
Happy to help draft the error-code + message tests. No unsolicited PR.
Same problem. Found that my directory -- as well as almost everything on my PC -- is owned by Administrator .. and the root directory of a project apparently needs to be owned by your user account to have it work.
I have the same issue Connected Windows computer; delegated task fails before PowerShell starts: helper_unknown_error: setup refresh had errors. Retry failed October 8 at 16:04:25 UTC.
Activity
github-actions commentedon Jul 25, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
bbingz commentedon Jul 25, 2026
Analysis (community)
Residual analysis for #35353 (
helper_unknown_error: setup refresh had errorson Windows Workspace) under docs/contributing.md — invitation-only. No unsolicited PR. Related: #35349 (Setup Incomplete loop) shares the setup binary surface.Root-cause hypothesis (two OSS levers, one symptom)
Windows sandbox setup has a hard bail on any non-empty refresh error list (
"setup refresh had errors"), and untyped/anyhow failures are folded intoHelperUnknownError, which wires as the non-actionable stringhelper_unknown_error. Users therefore see a single opaque code even when logs know more.Verified at HEAD
4c43465133undercodex-rs/windows-sandbox-rs(Apache OSS path):1. Refresh hard-fail (AD).
codex-rs/windows-sandbox-rs/src/bin/setup_main/win.rs— whenrefresh_only && !refresh_errors.is_empty():setup refresh completed with errors: {refresh_errors:?}anyhow::bail!("setup refresh had errors")Partial refresh problems become a full non-zero setup exit. The bail string itself is generic; detail lives in the log line immediately above, not in the typed failure code path unless something re-maps it.
2. Unknown-error fold (AF).
Same file, setup error handling:
Any error without a typed
SetupFailurebecomes HelperUnknownError. Wire map insetup_error.rs:HelperUnknownError => "helper_unknown_error".So a refresh bail (or other untyped chain) that does not carry a structured
SetupFailurecollapses to the exact symptom string in this issue title.3. What is / is not OSS.
setup.rs“setup refresh: spawning…” region) — OSS.4. Distinct from #17459 / SEC_E_NO_CREDENTIALS-class token issues.
Different subsystem (windows-sandbox setup helper vs credential/token restricted flags).
Ranked fix outline (all OSS):
SetupErrorCode(e.g.HelperSetupRefreshFailed) instead of Unknown — include aggregatedrefresh_errorsinSetupErrorReport.message.extract_setup_failurefor known ACL/firewall/user-provision paths so they never fall through to Unknown.Fail-first tests: (1) non-empty
refresh_errorsin refresh_only mode → typed code ≠helper_unknown_error(or message contains the logged errors); (2) knownSetupFailurestill round-trips its code; (3) untyped anyhow still produces a message that includeserr.to_string(), not an empty unknown.Happy to help draft the error-code + message tests. No unsolicited PR.
ericblade commentedon Sep 4, 2026
Same problem. Found that my directory -- as well as almost everything on my PC -- is owned by Administrator .. and the root directory of a project apparently needs to be owned by your user account to have it work.
This is basically per the information in this thread: https://community.openai.com/t/codex-desktop-command-runner-completely-broken-helper-unknown-error-setup-refresh-had-errors/1391898
Acudivinix commentedon Oct 8, 2026
I have the same issue Connected Windows computer; delegated task fails before PowerShell starts: helper_unknown_error: setup refresh had errors. Retry failed October 8 at 16:04:25 UTC.