Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/mcp-beaver#85
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Read-only inspection of the running
sirens-dowel-playwright-mcppod. Nothing changed.94e4050("fix(upstream): hold the standalone stream, or every tool call hangs") closed #80. The hang it measured is gone. The reconnect failure #80 was actually titled for is not, and it reproduces on the fixed image.The image is the fixed one
94e4050was committed at 02:41Z and deploy rolled it out at 03:00Z. Both failures below are after that.Same error string, same duration, post-fix
Those are #80's two quoted blocks, near enough verbatim, including
duration_ms: 4.Why the fix does not cover it, as I read it
94e4050reasons that a call answered on the standalone stream no longer hangs, so the session stops dying, so the broken reconnect is never reached. The first half held and the second did not. The session still reaches a closed state, and when it does,notifications/initializedstill comes backBad Request, which is #67's string.Duration is the discriminator worth keeping: #80's hang was 59.9s. These are 4ms and 7ms. The failure is now instant rather than slow, which is consistent with the hang being fixed and the recovery path still being broken underneath it.
It is not the whole server
Another client ran a clean sequence against this same pod at 03:23:53 to 03:24:06 with every call ok:
browser_wait_for,browser_snapshot,browser_click,browser_navigate,browser_type. So the browser and the fixed wrapper both work. Splitting the pod log by trace id, every call carrying one is the Dowel lane's and every one of those failed.Two theories I built and discarded, so nobody rebuilds them
sirens-dowel-playwright-mcp-values.yamlrecords--shared-browser-contextas deliberately absent on this lane, and #80 already refuted a one-session-at-a-time upstream by dialling a second session cleanly.94e4050.94e4050's own warning is the reason I am filing rather than guessing further: a dead upstream session makes the next call reconnect, that dial also fails, and the reported reason is the reconnect's rather than the cause beneath it. So this error string has now misdirected at least three investigations, mine included. Whatever closes this should probably make the underlying cause visible rather than only the reconnect's complaint.Standing, and why the timing matters
sirens-dowelhas made 14 browser tool calls in 7 days and all 14 failed, measured in SigNoz onattribute.mcp.tool.name LIKE 'browser%'grouped by outcome. There is no successful call on this lane at any point in that window.The lane advertises
playwrightin its tool list and offers it when asked what it can do, and it is live on a stream at 11:00 PT today. A capability with a 0% lifetime success rate is being advertised as available.Complete when
Refs: #80, #67, #79
Worked this for a while and did not close it. Posting what I ruled out and the one thing I think is actually blocking a diagnosis, since this issue's own point is that the error string has misdirected three investigations.
Ruled out, with evidence
kubectl top: 462Mi against a 2Gi limit,Restart Count: 0on both containers, no OOM in the pod description. The browser is idle and healthy.mainand the cluster. The running pod matchesorigin/mainexactly: mcp-beaver94e4050, playwrightupstream-dd643326, and--shared-browser-contextabsent in both. I chased this one because I had read an older revision of the values file that said the flag was present, and 3f61bc3 has since reverted it. The cluster is not behind.browser_navigatestill hung 60s on a fresh pod carrying the flag while the same call direct to the sidecar returned in about a second. Reinstating it would be going backwards.One real defect, which I do not think is this one
internal/mcpserver/telemetry.go:253deliberately manufactures params for a notification that has none:and the middleware then injects
_metainto it, so mcp-beaver sendsnotifications/initializedwith a params object rather than bare. That is worth tidying on its own.It is almost certainly not the cause here, and I want that on the record so nobody spends an hour on it:
client.Connectsends the same notification through the same middleware on the initial dial, and the initial dial succeeds every time - the pod reaches Ready and snapshots its baseline. A defect on that path would fail at startup, not intermittently four hours in.What is actually blocking a diagnosis
The upstream logs nothing but its banner.
That is the entire log of the
playwright-mcpcontainer. No request line, no status, no error. So theBad Requestis an HTTP 400 whose origin has never been read by anyone - every investigation including mine has inferred it from mcp-beaver's side of the wire.That is why this keeps costing an investigation. It is not that the error is badly worded, it is that half the transaction is invisible.
The cheapest way to close that gap is one of:
I would do 2 before guessing again, and it satisfies this issue's own second completion criterion directly.
On the standing question
The 0-of-14 figure holds and it is the part that matters today. Since
playwrightis advertised in the lane's tool list and has never once worked there, the low-risk move before the stream is removing it from the Dowel roster rather than fixing it under time pressure. That is a deploy-side decision rather than one for this repo, so I have not acted on it here.Also worth correcting on a neighbouring thread: 3f61bc3's message attributes the moxn outage to this same defect. Post-
94e4050evidence says otherwise - moxn now fails withcalling "initialize": Unauthorized, which is an expired credential rather than a lost stream. Anyone reading that commit should not assume the new image fixed moxn. Recorded on coilyco-gaming/sirens-echo#1026.