Skip to content

[Bug] v5.0.6 Zero Risk turn remains Working after successful native tool calls, then logs trusted environment unavailable #484

Description

@korboybeats

Codex Web GPT version

5.0.6

Platform

macOS arm64

ChatGPT account tier

Pro

Integration mode

Zero Risk / manual mode

Selected model

ChatGPT Web — Zero Risk Pro

What happened?

A long-running Zero Risk task can become permanently stuck in Codex even after the ChatGPT Temporary Chat has stopped generating.

Observed sequence:

  1. Start a Codex task with ChatGPT Web — Zero Risk Pro.
  2. Complete the normal manual Zero Risk flow (copy/paste prompt, select Codex Zero Risk, send, confirm Sent).
  3. ChatGPT uses the native Codex harness normally.
  4. Many native tool calls execute successfully (exec_command, write_stdin, etc.).
  5. The ChatGPT Temporary Chat eventually stops generating and shows a final response.
  6. The outer Codex task continues executing native tools afterward.
  7. Eventually native tool activity stops.
  8. Codex remains on Working indefinitely instead of completing.
  9. The launcher then repeatedly logs:
[chatgpt-web] trusted environment unavailable
(thread_id=present, turn_id=present, previous_response_id=none,
 replay_prefix_items=0, context_messages=4)

The stuck turn does not resolve by itself and must be interrupted manually.

This happened more than once during the same session.

Reproduction evidence

One affected trace:

traceId=95876c4890c6

Relevant lifecycle from Launcher → Activity → Export safe log:

2026-09-14T12:58:11.875Z  broker trace=95876c4890c6 registered
2026-09-14T12:58:11.904Z  browser.manual_turn_started
2026-09-14T12:58:38.591Z  browser.manual_prompt_confirmed

The turn then successfully executed multiple native tool calls. Examples:

13:01:10  exec_command queued → delivered → completed
13:01:26  exec_command queued → delivered → completed
13:01:37  exec_command queued → delivered → completed
13:01:52  exec_command queued → delivered → completed
13:02:14  exec_command queued → delivered → completed
13:02:29  write_stdin queued → delivered → completed
13:03:06  exec_command queued → delivered → completed
13:03:38  exec_command queued → delivered → completed
13:03:45  exec_command queued → delivered → completed
13:04:18  write_stdin queued → delivered → completed

The shown broker claims were valid=true, and each tool call completed with pending=0.

Afterward, instead of the turn completing, the daemon began repeatedly reporting:

2026-09-14T13:11:27.321Z trusted environment unavailable
2026-09-14T13:11:27.560Z trusted environment unavailable
2026-09-14T13:11:27.993Z trusted environment unavailable
2026-09-14T13:11:28.801Z trusted environment unavailable
2026-09-14T13:11:30.377Z trusted environment unavailable
2026-09-14T13:11:33.313Z trusted environment unavailable

Additional repetitions occurred shortly afterward.

Eventually:

2026-09-14T13:35:19.483Z
browser.retained_tab_expired
traceId=95876c4890c6

I do not see a normal completion event for this trace between the successful tool work and retained-tab expiration.

Second similar occurrence

The same safe log contains another long Zero Risk trace:

traceId=507dcc8ce75c

It similarly:

  • started successfully;
  • reused the retained Temporary Chat;
  • executed many native exec_command / write_stdin calls successfully;
  • had the shown broker claims accepted with valid=true;
  • later stopped making progress;
  • was followed by repeated trusted environment unavailable warnings.

So this does not appear to be a one-off failed tool invocation.

Relation to #424

This looks related to #424 because the same trusted environment unavailable symptom appears on v5.0.6 after successful browser-side work.

However, this reproduction is Zero Risk/manual mode and I did not observe a compaction event around the affected trace in the exported safe log. That suggests the trusted-environment continuation/restoration failure may also affect ordinary Zero Risk turns, not only post-compaction continuation.

Expected behavior

Once the Zero Risk browser turn and native Codex harness are successfully bound:

  • successful native tool activity should preserve the trusted Codex environment for the lifetime of the turn;
  • a ChatGPT-side final response should not leave the outer Codex turn permanently running;
  • if the bridge can no longer restore the trusted environment, the pending native turn should fail explicitly instead of remaining on Working indefinitely;
  • already-completed tool work should remain committed;
  • the user should not need to press Esc to recover.

Privacy-safe diagnostics

I captured Launcher → Activity → Export safe log before interrupting the stuck turn. I can provide the exported JSONL if needed.

Zero Risk/manual mode did not appear to create a local diagnostics/browser-turns directory on this installation, so I do not have per-turn browser checkpoint JSON for these traces.

Related issues

Preflight checklist

  • Reproduced on Codex Web GPT v5.0.6
  • macOS arm64
  • ChatGPT Pro
  • Zero Risk / manual mode
  • Native tool calls demonstrably succeeded before the stall
  • Privacy-safe Activity export captured before manually interrupting the stuck turn
  • Existing issues searched

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: major user-facing failure; address nextbugSomething isn't workingneeds infoReporter evidence is missing; see the latest analysis for the specific data needed.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions