AI news, problem solutions & tool picks
DigestX

Problem Solutions

Claude Code Treated Timed-Out Searches as Complete Results: Update to 2.1.317 and Recheck Your Work

· 4 min read

Programming code on a dark computer screen
Photo via Pexels

Claude Code 2.1.317, published on November 2, fixes a bug where a search that ran out of time handed the model partial results as if they were complete. The changelog line is one sentence: "Fixed Claude treating partial Grep and Glob results as complete when a search hit its time limit." If you used Claude Code before the fix, answers built on its searches may rest on work that never finished — and the model had no way to tell you.

The failure mode is what makes this bug serious. A search that errors out is visible: the agent stops, or reports the error, and you know something went wrong. A search that times out and returns what it found so far looks identical to a search that finished, except it scanned only part of your repository. The model then treats that partial list as the whole answer, and tells you there are no more matches, no other callers, no further occurrences — with full confidence, because from its side nothing failed.

Why a partial result is worse than an error

Consider the tasks developers actually hand to a coding agent: find every caller of a function before changing its signature, check whether a pattern appears anywhere else, audit a codebase for a risky API. Each of these is only safe if the search covered everything. A partial result does not merely leave work undone; it actively certifies the undone work as done. A refactor based on an incomplete caller list, or a security audit based on an incomplete pattern search, is worse than a refactor or audit that never ran, because it carries false assurance.

This is also a class of failure that agents are unusually bad at noticing. A human who gets two results from a repository they know holds dozens will smell something wrong. A model given two results and told the search completed has no such instinct, and nothing in its context signals that the search was cut short. The bug is not that the model lied; it is that the tooling gave it a smaller truth without marking it as partial.

What else changed in the same week

The changelogs from the same week show the same theme in three places: silence being interpreted as success. Version 2.1.316, published October 31, added a notice for cloud sessions and server-side safety checks. Version 2.1.317, published November 2 at 23:57 UTC according to the npm registry, also changed subagent effort handling, so a subagent on a different model uses that model's saved or default effort rather than your session's, and removed the Read tool's "file unchanged since your last Read" stub, so reading an unchanged file again returns its content. A separate 2.1.317 change adds a notice when an auto-mode safety check has no result, rather than letting the absence read as a pass.

Note the limit of what is documented. The changelog gives one sentence on the search bug, and the analysis of it was published November 3. There is no incident list, no count of affected users, and no claim about any specific repository or decision that went wrong. This article does not invent one: the risk is structural, and it applies to any pre-fix search that timed out, whether or not a particular failure has been documented.

What to do now

First, update. Check your version and move to 2.1.317 or later, since the fix is what stops new searches from failing silently. Second, re-run the searches behind any important decision you made with an older version: every-caller checks before a signature change, every-occurrence audits, deduplication passes. If the new run finds results the old run missed, the old answer was partial, and anything built on it deserves a second look. Third, narrow the scope of very large searches going forward, so fewer of them approach the time limit at all, and treat any pre-fix "no more matches" answer with suspicion until it has been re-verified.

The broader lesson survives this specific fix. Whenever an agent tool can fail by returning less instead of erroring, the result needs a completeness signal, not just a result list. Version 2.1.317 adds that signal for Grep and Glob timeouts. Your job is to make sure the answers you already shipped did not depend on the silence it replaces.