External Publication
Visit Post

Browserbase connector in ChatGPT: start() succeeds but navigate() fails with “No active session”

OpenAI Developer Community May 15, 2026
Source

Update — Root Cause Confirmed via Controlled Testing

After running three systematic experiments to isolate this issue, I can now report conclusive findings.


What was tested:

Test 1 — Explicit sessionId workaround (v1)

Hypothesis: If ChatGPT can pass the sessionId returned from start() explicitly into navigate(), session state can be preserved manually.

Result: Not possible. The Browserbase connector schema does not expose sessionId as an accepted parameter on any downstream tool:

navigate({ url })— no sessionId parameter

extract({ instruction })— no sessionId parameter

observe({ instruction })— no sessionId parameter

act({ action })— no sessionId parameter

end()— no sessionId parameter

start() returns a sessionId, but there is no mechanism in the schema to pass it forward.


Test 2 — Atomic back-to-back execution (v2)

Hypothesis: If ChatGPT loses session state due to latency between calls (timeout), forcing all calls to execute immediately with zero pause might preserve the session.

Prompt used: Instructed the model to call start()navigate()extract()end() atomically with no commentary between steps.

Result: Failed at Step 2. navigate() returned “No active session” even when called immediately after start().

Actual output:

Step 1: start() → success | sessionId: 04123f5d-1291-411c-950d-24446270e11d

Step 2: navigate(“a web site link”) → Error: No active session

Cleanup end() → Error: No active session

This disproves the latency/timeout theory. The session was never accessible to begin with.


Test 3 — Same workflow in Claude (control)

The identical Browserbase connector, same account, same sequence (startnavigateextractend) was run in Claude. It completed successfully across multiple runs including scraping Hacker News and calling the MyCareersFuture API.


Root Cause (confirmed):

ChatGPT spawns a fresh MCP session for each individual tool call. When start() completes in MCP session A, the Browserbase server registers the browser session. When navigate() is called, ChatGPT opens MCP session B — a new connection that has no knowledge of session A. The browser session created by start() is orphaned.

Claude maintains a persistent MCP connection throughout a conversation, which is why the same connector works there.

This is consistent with the related thread: “Connector tool calls generating fresh MCP session each invocation” (829 views, 11 replies).


What needs to be fixed:

From OpenAI: Persist MCP session state across tool calls within the same conversation turn, or at minimum within the same assistant response generation cycle.

From Browserbase (interim fix): Expose sessionId as an optional parameter on all downstream tools (navigate, act, observe, extract, end). This would allow the model to pass the sessionId from context — making the connector runtime-agnostic. Stateful session management should not rely solely on transport-layer persistence.

Until either fix is in place, the Browserbase connector is non-functional in ChatGPT by design — not by configuration error or prompt issue.


Happy to share screenshots of all three test runs if helpful.

Forum supports Markdown — reply akan render bold, code blocks, dan horizontal rules dengan betul.

Discussion in the ATmosphere

Loading comments...