Heimdall ResearchSearch

Second delivery of a ticket while the provider holds the refund for approval: two single pairs

In one pending-approval pair, the second agent got the provider's rejection and reported the other agent's request as its own. In one post-approval pair, it saw the completed refund and made none.

MeasurementCompared with simpler mechanismsRe-checked

Designed for
Two single pairs on a Stripe sandbox without the guard, as context for the guard's answer to a second session: what a second agent does with a re-delivered ticket while the provider holds the first refund, and after approval.

What was tested

On a Stripe sandbox in test mode, the provider held the first claude-opus-5 agent’s refund, above the approval threshold, for a human reviewer. A second agent then got the same ticket: once about 646 seconds later, after the reviewer had approved, and once 1.3 seconds later, while the request was pending.

What we observed

After approval, the second agent saw the completed refund and made none. While pending, the second agent’s refund was rejected because a request was already waiting; it re-read zero refunds and told the customer it had itself submitted the refund, awaiting approval. The provider’s rejection named neither the pending request nor its creator, and did not say that this call created nothing.

What this means for Heimdall

A careful model did not repeat an approved refund, and the provider’s answer did not stop a second agent from claiming another’s request. This bears on what a status answer must tell a second requester.

Limits

One pair per case, no guarded run, one model, a human approver. Why the agent misattributed the request is not visible. The refund after the later approval is not in the record.

What remains open

A guarded sequential run has not been done.