What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.429.61741
What subscription do you have?
Pro
What platform is your computer?
Darwin 25.3.0 arm64 arm
What issue are you seeing?
Codex Desktop Browser Use works in a foreground user turn, but fails in a heartbeat automation turn with:
Browser turn does not belong to this IAB pipe
This is not the same failure mode as "No Codex IAB backends were discovered".
In the reproduced session, the initial user turn successfully opened https://www.google.com/ through Browser Use, and the automation heartbeat turn later failed immediately when running the same Browser Use flow.
I also verified through the app's Chromium DevTools Protocol target that a runtime turn/started capture shim did record the failing heartbeat turn id, so the failure is not just "no turn/started event reached the renderer". The remaining problem appears to be heartbeat / in-app-browser ownership validation for the current turn_id.
What steps can reproduce the bug?
- In Codex Desktop on macOS, start a thread and use
[$browser-use:browser] to open https://www.google.com/.
- Confirm the foreground turn succeeds.
- In the same thread, create a heartbeat automation that runs daily with instructions to open
https://www.google.com/ in the in-app browser and verify the final URL and title.
- Let the heartbeat run.
- Observe that the Browser Use JS call fails immediately with:
Browser turn does not belong to this IAB pipe
Concrete reproduced session data:
- Thread:
019dff3e-2f7a-7d43-91f9-d5e8728dccfb
- Foreground success turn:
019dff3e-2f97-7093-8907-a4d7bfdd122f
- Heartbeat failure turn:
019dff3f-2be9-70b2-a719-14e3f5dd40df
Foreground Browser Use call succeeded and returned:
{"url":"https://www.google.com/","title":"Google"}
Heartbeat Browser Use call failed in about 5ms with:
Browser turn does not belong to this IAB pipe
What is the expected behavior?
A heartbeat automation in the same thread should be able to use Browser Use against the in-app browser when the initial foreground thread already succeeded.
If heartbeat turns are intentionally isolated from the interactive IAB pipe, Codex should either:
- create a valid Browser Use route for the heartbeat turn, or
- fail earlier with a clearer unsupported-mode error instead of the ownership mismatch.
Additional information
The issue appears related to Browser Use route ownership / turn authorization in the desktop app.
Relevant observations:
turn/completed releases the Browser Use route.
- A local runtime shim confirmed the failing heartbeat turn was seen at
turn/started.
- Even with the heartbeat turn captured, Browser Use still rejected the heartbeat
turn_id for the IAB pipe.
- This suggests the remaining bug is not only route capture, but the heartbeat turn's authorization against the selected in-app-browser session / owner.
Potentially related but different issue:
That issue describes No Codex IAB backends were discovered, while this report is specifically about Browser turn does not belong to this IAB pipe after the browser path already worked in the same thread.
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.429.61741
What subscription do you have?
Pro
What platform is your computer?
Darwin 25.3.0 arm64 arm
What issue are you seeing?
Codex Desktop Browser Use works in a foreground user turn, but fails in a heartbeat automation turn with:
Browser turn does not belong to this IAB pipeThis is not the same failure mode as "No Codex IAB backends were discovered".
In the reproduced session, the initial user turn successfully opened
https://www.google.com/through Browser Use, and the automation heartbeat turn later failed immediately when running the same Browser Use flow.I also verified through the app's Chromium DevTools Protocol target that a runtime
turn/startedcapture shim did record the failing heartbeat turn id, so the failure is not just "no turn/started event reached the renderer". The remaining problem appears to be heartbeat / in-app-browser ownership validation for the currentturn_id.What steps can reproduce the bug?
[$browser-use:browser]to openhttps://www.google.com/.https://www.google.com/in the in-app browser and verify the final URL and title.Browser turn does not belong to this IAB pipeConcrete reproduced session data:
019dff3e-2f7a-7d43-91f9-d5e8728dccfb019dff3e-2f97-7093-8907-a4d7bfdd122f019dff3f-2be9-70b2-a719-14e3f5dd40dfForeground Browser Use call succeeded and returned:
{"url":"https://www.google.com/","title":"Google"}Heartbeat Browser Use call failed in about 5ms with:
Browser turn does not belong to this IAB pipeWhat is the expected behavior?
A heartbeat automation in the same thread should be able to use Browser Use against the in-app browser when the initial foreground thread already succeeded.
If heartbeat turns are intentionally isolated from the interactive IAB pipe, Codex should either:
Additional information
The issue appears related to Browser Use route ownership / turn authorization in the desktop app.
Relevant observations:
turn/completedreleases the Browser Use route.turn/started.turn_idfor the IAB pipe.Potentially related but different issue:
Codex Desktop Automations cannot use Browser Use pluginThat issue describes
No Codex IAB backends were discovered, while this report is specifically aboutBrowser turn does not belong to this IAB pipeafter the browser path already worked in the same thread.