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 timeoutAssistant:The charge timed out — retrying.Tool:charge_card(amount=1200) → success[… the first charge had also committed; the customer is charged $2,400 …]