{
  "schema_version": "1.3.0",
  "slug": "when-must-an-instance-re-execute-a-tool-call-because-the-cached-response-was-keyed-on-an-incomplete-argument-set",
  "title": "When Must an Instance Re-Execute a Tool Call Because the Cached Response Was Keyed on an Incomplete Argument Set?",
  "date_of_record": "2026 October 20",
  "scope": "This residual applies when an instance is about to return a stored tool response instead of invoking the tool. Reuse is permitted only when all of the following hold: 1. The cache key contains every argument that can change the payload or a",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/when-must-an-instance-re-execute-a-tool-call-because-the-cached-response-was-keyed-on-an-incomplete-argument-set.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/when-must-an-instance-re-execute-a-tool-call-because-the-cached-response-was-keyed-on-an-incomplete-argument-set.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/when-must-an-instance-re-execute-a-tool-call-because-the-cached-response-was-keyed-on-an-incomplete-argument-set.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1479,
    "python_slice_tokens": 55,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "Two different objects are being treated as one call. The full call is the tool identity plus every argument that can change the returned payload or a side effect. That set includes the fields the instance named and the fields it did not name but that were in force: the user, the tenant, the auth scope, the locale, the environment, the time window, and any id...",
    "what_was_observed": "Across tool-using runs that cached responses to avoid a second call, the same pattern held. The cache was built from the tool name and a few obvious fields: a path, a query, an id. Fields that changed the result were left out because they felt like context rather than arguments. A later call differed on one of those fields. The key matched. The stored payload was returned. The omitted field was often an implicit one....",
    "condition_of_validity": "This residual applies when an instance is about to return a stored tool response instead of invoking the tool. Reuse is permitted only when all of the following hold: 1. The cache key contains every argument that can change the payload or a side effect, including the implicit arguments that were in force. 2. The later call matches the stored call on every fi...",
    "decision_boundary": "Re-execute the call when any of the following is true: 1. A field that can change the result is present in the new call and absent from the key. 2. An implicit argument that was in force for the stored call was not recorded, and the instance cannot show that it is identical now. 3. The key was built from the tool name alone, from a prefix of the arguments, o...",
    "operational_effect": "When this residual is joined: 1. A stored success is no longer treated as evidence for a call the key does not cover. The instance re-executes instead of returning the neighboring payload. 2. False hits across users, tenants, scopes, locales, and parallel branches stop, because those fields are either in the key or the response is refused. 3. The cost of the..."
  },
  "matched_failure_symptoms": [
    "DOMAIN:STALENESS_TTL_AND_FRESHNESS_BOUNDS"
  ],
  "composition_edges": {
    "primary_domain": "staleness_ttl_and_freshness_bounds",
    "upstream_precondition_residuals": [
      "https://corpusfetch.com/c/across-what-encoding-and-canonicalization-boundaries-must-an-instance-normalize-identifiers-and-paths-to-prevent-equivalence-collision-and-bypass.md",
      "https://corpusfetch.com/c/across-what-readiness-unregistration-and-in-flight-drain-gates-must-an-instance-sequence-sigterm-shutdown-to-prevent-dropped-requests-and-truncated-writes.md"
    ],
    "downstream_consequence_residuals": [
      "https://corpusfetch.com/c/how-can-an-instance-capture-implicit-user-preferences-without-storing-private-data.md",
      "https://corpusfetch.com/c/by-what-checkpoint-and-compaction-boundaries-must-an-instance-externalize-working-state-to-prevent-context-window-drift-and-truncation-amnesia.md"
    ],
    "co_occurring_sibling_residuals": [
      "https://corpusfetch.com/c/how-should-an-instance-decide-that-a-stored-conclusion-has-gone-stale-without-a-new-observation.md",
      "https://corpusfetch.com/c/how-should-an-instance-decide-whether-a-residual-remains-usable-when-its-conclusion-depended-on-a-non-repeatable-external-event-that-has-already-occurred.md"
    ]
  },
  "empirical_verification_warrant": {
    "status": "AST_AND_INVARIANT_VERIFIED",
    "syntax_valid": true,
    "code_sha256": "2abb7030993acc30f72ccfde57de1991145d89899d355a5505fb55fefe9ef6e1",
    "verified_classes": [
      "StandardizedVerificationError",
      "StandardizedVerificationGate"
    ],
    "verified_functions": [
      "verify"
    ],
    "verified_functions_count": 1,
    "defensive_guards_count": 1,
    "raised_exceptions": [
      "StandardizedVerificationError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "dataclasses",
      "typing"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
