Build1 distinct publisher3 min readPublished
A dev.to writeup traces confidently wrong agent actions to a cached tool catalog rather than the model, and prices the fix at one whoami call per session.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
A revoked permission and a broken model produce the same log line. The dev.to writeup makes the mechanism plain: when authority is resolved fresh on every call from current membership, roles and permissions, the answer to "can I do this?" can be yes on Monday and no on Tuesday with nothing about the token having changed [5][6]. The token still authenticates, because its job is to say which named connection is talking, not to carry the caller's authority [4]. So the agent looks healthy, the prompt is the one shipped last week, and the two components a team will spend a day reading are the two that did not change [3].
The third symptom in the author's list is the expensive one: a mutation that reports success and silently did nothing [2]. A failed call at least raises its hand [7]. A false success does not, and it propagates to whoever reads the record later.
The catalog half has the same shape. Any actively developed tool server adds tools, renames arguments, tightens validation and deprecates things [9]. The live tools/list response is the source of truth; a catalog copied from documentation, a blog post or a previous session's transcript is not [10]. That failure is quieter still, because a model will happily improvise a plausible call against a tool that no longer accepts the argument it remembers [11].
Set the price against the exposure. One whoami at session start, against, in the account given, roughly a week of accumulated staleness before anything visibly breaks [1]. Two of the five prescribed steps deal with state imported from before the session; the other three are in-session hygiene [2]. Page with cursors rather than reading the first page and reporting a total, which is a confident number that is wrong [13]. Fetch the complete authorized record and carry its item revisions into the mutation, which is what makes concurrent edits safe instead of last-write-wins [14]. Give each intended change a fresh operation id, and reuse one only when you are deliberately retrying that same change, which is the line between a retry and a duplicate [15].
The design point underneath is that refusal is the feature [16]. An agent free to write any field produces records that are structurally valid and semantically nonsense, such as a task marked delivered with no evidence, or a review verdict with no reviewer [17].
On evidence: this is one practitioner's account of three unnamed teams [1], and the concrete server behaviour cited is Wagglet's documentation of its own MCP server, where team-level access is off by default and disabling it later rejects every connection request immediately without deleting the connections [8]. That is a vendor describing its own design. The mechanism travels anyway, because it belongs to per-call authority resolution rather than to any one server [5].
Ranked by verification strength, evidence, and original report placement.
On a permissioned tool server, the token identifies which named connection is talking and does not carry the caller's authority.
In a system built correctly, the token keeps working as an identifier and authority is resolved fresh on every call from the person's current membership, roles and permissions.
The answer to "can I do this?" can be yes on Monday and no on Tuesday with nothing about the token having changed, for example if the person is moved to a different team, their role changes, an admin turns off tool access at the workspace level, or a permission is revoked.
If an agent cached a permission list at connection time, the only symptom seen is a failed action it did not expect to fail.
Any actively developed tool server adds tools, renames arguments, tightens validation and deprecates things, which the author calls normal and healthy.
A tool catalog taken from documentation, a blog post or a previous session's transcript is not a source of truth; the live tools/list response is.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One self-interested practitioner post, no artifacts
The cluster contains a single dev.to post. Its causal core - three teams whose confidently wrong agent actions traced to a cached catalog - is an unsourced first-person anecdote with no logs, incident reports, named teams, or reproduction. The product-behaviour specifics are a paraphrase of Wagglet documentation that is not supplied, and the prescribed sequence references tool names the post says live in an external guide also not supplied. What holds up on its own is the general mechanism (tokens as identifiers versus per-call authority, tool catalog drift, cursor paging, revision-based writes, idempotency keys), which is uncontested and self-consistent but demonstrated by argument rather than data.
No adoption signal supplied
The cluster contains no release, deployment, usage, benchmark, pricing, or licensing observation. The only quantity mentioned is 'three separate teams' hitting a failure, which describes an anecdotal failure pattern rather than measurable uptake of Wagglet's MCP server or of the prescribed session-bootstrap practice. Inferring adoption from a vendor-adjacent blog post would be guessing.
Mechanism plausible, cure priced too cheaply
The claims are modest by AI-story standards - no capability or benchmark boasts - and the underlying mechanism is ordinary engineering. The overstatement is in framing and pricing: a single unverified anecdote is presented as a recurring 'class of bug', and the remedy is priced at 'one call' when the prescribed sequence is at least two extra round trips per session plus paging and revision discipline, with no latency or cost accounting and no consideration of invalidation-based alternatives. The refusal-as-feature design argument is asserted rather than demonstrated and doubles as promotion for the author's linked product, which pushes the gap positive but not far.
Vendor-aligned content marketing
The post is a practitioner narrative whose every concrete example and outbound link points to one product: Wagglet's MCP server is the worked illustration of correct token handling, and the article closes by routing readers to the Wagglet MCP workspace guide, the Wagglet workflow argument, and a 'how Wagglet works' background page. The author-vendor relationship is never disclosed, and the failure story creates demand for exactly the properties the linked product claims. Publisher incentives are mild - dev.to is an open self-publishing platform with no editorial gatekeeping on this material - which is itself part of why the promotional framing passes through unexamined.
Mechanism credible, specifics unverifiable
Confidence splits across the cluster. The general engineering claims - per-call authority resolution, catalog drift, cursor paging, revision-carrying writes, operation-id idempotency - are uncontested and would be recognized by anyone who has built against a permissioned API, so they warrant moderate confidence on their own terms. Everything distinguishing is single-sourced and interested: the three-team incident, the week-long staleness window, and Wagglet's documented defaults. With one publisher, no adoption data, and no primary documentation in the cluster, overall confidence stays below the midpoint.
build
Rate limit your MCP servers, because a retrying agent turns one error into a billing incident1 distinct publisher
build
Thirty minutes a day, and none of it from letting the agent write Swift1 distinct publisher
build
The MCP transport your search results teach has been deprecated since March1 distinct publisher
build
A gate that warns and a fan that queues: test the executor, not the card1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 27, 2026