Replies: 2 comments 1 reply
|
One security refinement: I would keep “can this sandbox reach GitHub?” separate from “is this credential valid?” and run the transport check first with no credential in the child process. Re-injecting a known-good token before proving reachability does not distinguish auth from DNS, and it unnecessarily increases the number of processes that can read the token. The current Codex sandbox documentation confirms that For an unattended GitHub worker, a deterministic preflight could report three separate states without printing environment values:
If the worker only needs GitHub, enabling network plus a proxy allowlist for the exact GitHub endpoints it uses would be narrower than broad egress. Have you considered making that transport classification part of the launcher output, so the model never has to infer “auth failure” from |
|
You are right, and I shipped it: v0.3.0 adds Both of your points changed the design, not just the wording: Transport before credential, with the credential absent. The probes now run as Three states, separately reported, plus the auth result only when transport is proven:
Your second boundary was the one I had actually missed. I read Verified states before release: reachable host → Nothing in the output prints an environment value; I checked that with a marker token. Credit is in the README and the release notes. |
Uh oh!
There was an error while loading. Please reload this page.
Sharing a debugging trap that cost me a couple of hours today, in case it saves someone else the same detour.
I run
codex exec -s workspace-writeas a background worker in an orchestration setup. Two separate runs came back reporting that GitHub authentication had failed:The token was fine.
gh api userreturned my login in my own shell and the keychain entry was valid. What actually happened is thatworkspace-writedoes not grant network access, so name resolution failed inside the sandbox:ghreports a resolution failure in wording close enough to an auth problem that the model reads it as one, concludes the credentials are broken, and stops without touching the task. The second run had a known-goodGH_TOKENinjected into the environment and failed identically — that turned out to be the useful tell. If injecting a working credential changes nothing, the credential is not the problem.The fix is a flag:
A one-line probe to settle it before blaming credentials:
Two things I would change, and I am curious whether others see this differently:
Not a bug report — the flag is documented. The gap is that the failure is legible to the sandbox and not to the agent reading the error, so the agent confidently reports the wrong cause.
All reactions