---
title: "Discussion on \"My agent said the refund went through. The ticket went to the one team that could not fix it.\" | Hashnode"
description: "Discussion on \"My agent said the refund went through. The ticket went to the one team that could not fix it.\". A wrong answer from a swallowed timeout looks exactly like a wrong answer from a bad plan. Only one of them gets fixed by prompting."
url: "https://hashnode.com/posts/my-agent-said-the-refund-went-through-the-ticket-went-to-the-one-team-that-could-not-fix-it/6ace594f30baba0d7409c897"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [My agent said the refund went through. The ticket went to the one team that could not fix it.](https://kartiknvjk.hashnode.dev/my-agent-said-the-refund-went-through-the-ticket-went-to-the-one-team-that-could-not-fix-it?utm_source=hashnode&utm_medium=feed)

A wrong answer from a swallowed timeout looks exactly like a wrong answer from a bad plan. Only one of them gets fixed by prompting.

Oct 13 · 5 min read · kartiknvjk.hashnode.dev  
Read the article

-   [#ai-agents](https://hashnode.com/tag/ai-agents)
-   [#opentelemetry](https://hashnode.com/tag/opentelemetry)
-   [#llm](https://hashnode.com/tag/llm)
-   [#observability](https://hashnode.com/tag/observability)
-   [#llmobservability](https://hashnode.com/tag/llmobservability)

## Written by

[Kartik N V J K](https://hashnode.com/@kartik-nvj)

@kartik-nvj

  
[View profile](https://hashnode.com/@kartik-nvj)

AI Developer | Making AI reliable, trustworthy & accessible to everyone | Active community contributor

I write when an idea won't leave me alone 🧠 Building AI agents and the tools to build AI agents. Love connecting AI with other fields and yapping about all of them. Follow along if that's your kind of thing.

## Responses 1

Markdown supported · ⌘↵ to post

[Mike Dabydeen](https://hashnode.com/@firelinks)

[Oct 14](https://hashnode.com/posts/my-agent-said-the-refund-went-through-the-ticket-went-to-the-one-team-that-could-not-fix-it/6ace594f30baba0d7409c897/comment/6acf64e4472088dacd51b198)

The snippet fixes the trace, but the customer would still get the same answer. After the except block, fallback\_value goes back to the model as if the tool had returned it, so the span says ERROR while the summary still says the refund went through.

For a payment timeout I'd return neither a default nor a stack trace, but an explicit unknown, something like {"status": "unknown", "refund\_id": null}, that the summary step isn't allowed to report as done. Then check with the provider before anything reaches the customer. On Stripe that's listing refunds filtered by the charge, and sending an Idempotency-Key with the refund request makes the harness's own retries safe in the first place.
