OpenClaw Main Stops One Quota Failure Blocking Every Agent and Removes New-Chat Startup Stalls
Provider cooldown is now scoped to the failed auth profile, user pins can rotate to sibling credentials, and cosmetic title/catalog work moves off the first-turn critical path.
OpenClaw has merged three repairs to agent dispatch on main: one exhausted credential no longer pauses the shared command lane, new Control UI chats no longer wait behind title and catalog work, and explicit cached OpenAI WebSocket sessions can resume with previous_response_id instead of resending full history.
The common operator symptom was “the model is slow or unavailable.” The causes were different—queue ownership, cold startup work and continuation matching—so acceptance must test each boundary separately.
A quota failure is no longer a process-wide queue control
PR #121278 fixes the most severe problem. A terminal quota error on one auth profile could set the shared main command lane to zero for 30 minutes. Unrelated sessions and even unrelated providers then waited before model invocation.
The same routing path treated a user-selected auth profile as a strict singleton. If that credential was exhausted, another configured account for the same provider was never attempted.
The merged behavior keeps cooldown and suspension markers for diagnosis but removes their control over shared queue capacity. Only the failing profile enters cooldown. A user pin is tried first, then eligible same-provider profiles; after recovery, the persisted preference remains the pin. Explicit provider and model selection stays strict.
Interpretation: a user preference is now first choice, not exclusive authority over availability. If an operator needs hard account isolation rather than failover, they should rely on explicit provider/model binding and policy—not assume a pin forbids sibling credentials.
New chats stop doing cosmetic work before the turn
PR #122471 moves model-generated titles off the first-turn path. Managed-worktree creation had synchronously waited for title inference, while every dashboard chat started title runtime work before dispatch. Turn startup also built a live model catalog and repeatedly scanned plugin metadata.
The repair:
- removes title inference from
sessions.create; - schedules dashboard title generation after the accepted turn finishes;
- preserves explicit worktree labels and readable fallback names; and
- uses prepared static catalogs for turns and exact-model isolated completions, leaving the full live catalog lazy for control-plane consumers.
Upstream live proof reported a pre-fix 25.1-second prepared-runtime stage dominated by filesystem metadata calls, then a post-fix manifest load measured in tens of milliseconds. Those figures describe one test host, not a universal benchmark, but they establish that catalog construction—not provider latency—owned the stall.
Cached OpenAI WebSocket continuation works again
PR #122483 affects direct OpenAI API-key users who explicitly choose websocket-cached or auto. The socket could be reused while the entire conversation was still resent because reconstructed assistant history did not exactly match provider output metadata.
Continuation matching now ignores only provider delivery metadata that reconstructed history cannot contain, while preserving semantic fields and failing closed on meaningful history changes. Unchanged warm turns can send previous_response_id plus suffix-only input.
The direct API-key default remains SSE. This is not a claim that WebSocket is always faster, and it does not add SSE continuation caching or preconnect.
Acceptance plan
- Configure two disposable auth profiles for one provider and one profile for another provider.
- Simulate quota exhaustion on the first profile without consuming real paid quota.
- Require a user-pinned session to rotate to the sibling profile while an unrelated-provider session starts immediately.
- Confirm the failed profile receives cooldown and the persisted pin is not silently rewritten.
- Explicitly bind a model/provider and verify strict selection still refuses rather than crossing that boundary.
- Create ordinary and managed-worktree sessions while delaying title generation; the turn must start and complete independently.
- Profile first-turn startup and confirm full live catalog construction is absent from the critical path.
- For explicit cached OpenAI WebSocket mode, inspect the second provider request for one socket,
previous_response_idand suffix-only input. - Change semantic history and require a full-request fallback.
Evidence and limits
The quota repair’s primary source reports a redacted production incident, focused tests, runner E2Es and queue-admission proof. The chat-startup PR reports exact-head managed-Gateway timings, CPU profiling and 265 focused tests. The OpenAI repair reports a successful exact-head CI run and authenticated live A/B evidence. OpenClaw Academy verified primary sources and merge chronology but did not deliberately exhaust a paid account or send live OpenAI traffic.
Relevant collector records are 53479, 53567, 53693, 53461, 53661, 53473, 53565 and 53686.
Bottom line
After the containing upgrade, one exhausted credential should disable only itself, a new chat should not wait for a title, and cached WebSocket continuation should send only the unchanged-history suffix. Monitor queue admission, profile attribution and provider request shape separately; a faster-looking reply is not enough proof that all three contracts hold.
THE RECEIPTS
Claims should survive the click.
Primary links used for this article are listed openly. If the evidence changes, the verification date changes with it.THE OPERATOR BRIEF