Stale Does Not Mean Unsafe: Guard Precision for Tool-Using LLM Agents under Infrastructure State Races
An agent that restarts a job or grants a role reads the state first and commits second, and anything can change in between — so the obvious defence is a guard that blocks the commit whenever the resource has moved since the read. Replaying 3,456 frozen mutations across scheduler, pipeline, storage and access-control tasks, every guard tested stopped every unsafe commit, but the freshness ones also blocked 94.6% of the changes that left the action's safety conditions intact, dropping safe completions from 73.3% to 41.7% at identical cost, while a guard that re-evaluates the declared preconditions at the commit point blocked nothing harmless. Asking the model instead is not an option: verbal confidence was badly miscalibrated (calibration error about 0.37), a sampled-agreement gate matched a coin flip at the same spend, and among agents that retried after a freshness block, 31.9% committed unsafely from the refreshed read. Write the preconditions your mutation actually depends on into a conditional write, and treat every clause you leave out as a known hole — deleting one leaked exactly its failure family, up to 8.0%, and nothing else.