Retry after ambiguous outcome
The timeout left the first call's fate unknown, but the model retries as if it definitely failed — and the customer is charged twice.
User: Send the $1,200 refund-replacement charge to the customer's card. Tool: charge_card(amount=1200) → ERROR: gateway timeout Assistant: The charge timed out — retrying. Tool: charge_card(amount=1200) → success [… the first charge had also committed; the customer is charged $2,400 …]