-
-
Notifications
You must be signed in to change notification settings - Fork 79.1k
Browser-heavy sessions block all main lanes — need dedicated browser lane or per-channel lane routing #41120
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Hey folks,
Running OpenClaw with 3 main lanes, 6 subagent lanes, and channels across Discord, WhatsApp, Telegram, Slack. One recurring pain point: browser-based workflows completely starve all other channels.
What happens
Some of my channels trigger browser automation — multi-step web app workflows that legitimately take 5-10 minutes. These run on the main lane, same as a quick text reply.
When the agent is doing browser work for several minutes, that's 1 of 3 main slots gone. Two browser messages = 2 of 3 blocked. Three = full queue, nothing gets through.
Typical log pattern:
Queue depth 5, wait times over 4 minutes. Eventually the browser service crashes from accumulated pressure — but sessions keep retrying browser calls, holding lanes hostage until the 600s embedded run timeout.
A simple text message that needs 10 seconds sits in queue for 5+ minutes because all lanes are occupied by browser work.
Why existing options don't solve it
What would help
A dedicated browser lane — or more generally, per-channel lane routing. The infrastructure already supports it:
setCommandLaneConcurrencyandenqueueCommandInLaneaccept arbitrary strings, not just the CommandLane enum. The plumbing is there, just needs a config surface.Option A — per-channel lane assignment:
{ "agents": { "defaults": { "maxConcurrent": 3, "lanes": { "browser": { "maxConcurrent": 2 } } } } }With per-channel config to assign a lane.
Option B — auto-detect: if a session invokes the browser tool, transparently move subsequent work to a dedicated browser lane so it stops blocking text-only sessions.
Impact
Affects anyone combining browser automation with messaging channels. Browser work is inherently slow and unpredictable (page loads, retries, crashes), and right now it directly competes with fast text replies for the same limited main lane slots.
Related: #16055, #29685, #10334
Love OpenClaw — this is the one thing that keeps biting me. Thanks for considering it.