## TL;DR

The agent claimed an approval without evidence. Treat the approval system as the only source of truth: the agent must query the approval state and cite the approval record (approver, timestamp) before acting as if approval exists.

## Error

```text
agent hallucinated approval it never received
```

## Steps

1. Make approval checks query the system of record (the expense tool's approval API or audit trail), never the agent's memory or assumptions. Expected: a definitive approved-or-not answer.
2. Require the agent to record the approval evidence: who approved and when, from the system. Expected: every approval claim is traceable.
3. Default to not-approved: if the check is inconclusive, the agent must wait or escalate, not proceed. Expected: uncertainty never becomes a yes.
4. Log every approval claim with its evidence for later audit. Expected: a complete trail of what the agent believed and why.
5. Alert immediately if a claimed approval is later found to have no record. Expected: fast detection of the failure mode.

## When to use

- An agent acts on an approval it cannot prove.
- Approval-gated actions must be trustworthy.

## When not to use

- The approval exists but the notification was delayed (a timing issue).
- The agent correctly read a real approval (no problem).

## Tool compatibility

- Expensify, Concur, Ramp approval APIs; custom agent guards.

## Variant phrasings

### Agent assumed approval without evidence

Same failure, plain wording.

### Unverified approval claim

The audit phrasing.

## Why it happens

Agents chain steps optimistically: having requested approval, the model continues as if granted. Only a mandatory system-of-record check breaks the optimistic chain.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_-4GXtBURT69--fy66Xi64g
