# Timeouts & Limits (/docs/agents/voice-agents/conversation)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

The **Timeouts & Limits** card covers three things that aren't about what the agent says, but
about the shape of the call around it: **Idle behavior**, for when the caller goes quiet for
longer than a pause; **Call limits**, bounds on how long the call itself may run; and
**Reliability**, knobs for how the agent's back end recovers from failures. All three have
defaults that work; there's nothing you have to set here for a new agent.

The card is on the **Wrap Up** step of the agent editor. The **Reliability** fields sit behind
the slider button in the card's header, which opens them in a side panel.

<Callout type="info">
    Don't confuse this card with the editor step named **Conversation**, which is where **Brain**,
    **Voice & Speech**, **Knowledge** and the tool cards live. Nothing on this page is on that step.
</Callout>

## Idle behavior

Idle behavior is different from ordinary turn-taking pauses (tuned on the
[Voice & Speech](/docs/agents/voice-agents/voice-and-speech) card): it covers stretches where the
caller goes quiet for far longer than a mid-sentence pause — long enough that they may have set
the phone down or lost the line. It's **off** by default, so no existing agent starts hanging up
on deploy.

Turn it on and set:

**Silence before the agent speaks up** — how long the caller can stay quiet before idle
triggers. 1,000–300,000 ms (1 second – 5 minutes). Default 10,000 ms.

**When the caller goes quiet** — what happens the first time idle triggers. **Reprompt the
caller** speaks the idle prompt and waits again; **End the call** speaks it as a farewell and
hangs up. Default **Reprompt the caller**.

**Idle prompt** — what the agent says. Up to 500 characters. Required for **Reprompt the
caller**: a reprompt with nothing to speak never re-arms its timer, so idle would trigger once
and then stay quiet for the rest of the call. Optional for **End the call** — leave it empty and
the agent hangs up without saying anything.

**Reprompts before giving up** — how many times in a row idle can trigger, each one reprompting,
before falling through to **After reprompts are exhausted**. 0–5. Default 2. Setting this to 0
means the very first idle period goes straight to that fallback, and because nothing reprompts,
the **Idle prompt** is never spoken. Pair 0 with **Keep the call going** and idle does nothing at
all; turn idle off instead.

**After reprompts are exhausted** — once the reprompt count runs out: **End the call** hangs up;
**Keep the call going** stays on the line without reprompting again. The count only resets when
the caller speaks. Default **End the call**.

**Disposition** — recorded on the call when idle ends it. Must be one of this agent's own
dispositions. Only paths that end the call record it, so **Reprompt the caller** paired with
**Keep the call going** never does: the reprompts stop and the call carries on.

## Call limits

Bounds on the call itself, regardless of what's being said.

**Maximum call duration** — the call ends automatically once this elapses. 60,000–7,200,000 ms
(1 minute – 2 hours). Leave it blank for no limit.

**Warning lead time** — how long before the max duration the warning prompt is spoken.
5,000–300,000 ms, and must be shorter than the max duration itself. Requires a max call duration
to be set.

**Warning prompt** — what the agent says when the warning lead time is reached. Up to 500
characters. Required whenever a warning lead time is set, and it requires one in return: the
warning timer is armed only when both are present, so either on its own is never spoken.

## Reliability tuning

Failure-handling knobs for the agent's back end, in the **Reliability** panel this card's
header opens. Don't confuse this section with **Conversation history** on the [Brain
card](/docs/agents/voice-agents/brain), which governs how message history is retained rather
than how failures are handled; the names are similar but the two live on different cards.
Every field falls back to a built-in default when left blank, so an agent that never touches
this section behaves exactly as it always has.

**Consecutive failures before giving up** — how many turns in a row can fail (a dropped model
response, an unrecoverable error) before the agent gives up and ends the call. 1–10. Default 3.

**Tool timeout** — how long a tool call may run before it's treated as failed. 1,000–20,000 ms.
Default 15,000 ms. The ceiling is 20,000 because the agent stops waiting on a tool result at that
point regardless. Lowering this also lowers the cap on the
[**capture digits**](/docs/agents/voice-agents/built-in-tools) tool's overall timeout, which has
to stay at least a second inside it.

**Steering judge timeout** — how long the [steering rules](/docs/agents/voice-agents/safety)
judge may take to rule on a tool call before it's skipped for that turn. 500–10,000 ms. Default
2,000 ms.

**Handoff history depth** — how many recent messages ride along when the call hands off to a
workflow. 1–200. Default 40.

**Max retry attempts** — how many attempts the agent makes against the language model before
giving up on the turn. 1–6. Default 3.

**Initial retry delay** — how long the agent waits before the first retry, in milliseconds.
100–10,000. Default 1,000 ms.

**Max retry delay** — the ceiling the retry delay grows to as attempts continue, in
milliseconds. 100–20,000. Default 4,000 ms. When you set both delays, the ceiling must be at
least the initial delay, and a save that inverts them is rejected: a lower ceiling does not
fail at runtime; it flattens every retry to the ceiling, and the initial delay you set never
applies at all.

These three retry fields are a deliberate departure from the underlying SDK's own defaults of
6 attempts starting at 4,000 ms and growing to a 240,000 ms ceiling. Those numbers are sized
for a batch job that can afford to wait; on a call or in a chat, that backoff is dead air
followed by a failed turn anyway, so the platform ships a shorter default and lets you move
it from there. They govern **both voice and chat**: the agent runs on the same underlying
logic for either channel, so a retry setting configured here reaches chat turns too.

<Callout type="info">
    The retry ceiling is checked against each channel's own turn budget, which is shorter for voice
    than for chat. The same configured value can therefore be clamped on a call and honored as-is in
    a chat. The effective values actually used are logged, so you can confirm what applied to a
    given turn.
</Callout>

## Limits and defaults

| Setting                                   | Value                                                     |
| ----------------------------------------- | --------------------------------------------------------- |
| **Idle**                                  | Off by default                                            |
| Idle **Silence before speaking up**       | 1,000–300,000 ms; default 10,000                          |
| Idle **When the caller goes quiet**       | Reprompt the caller or End the call; default Reprompt     |
| Idle **prompt**                           | Required for Reprompt the caller; up to 500 characters    |
| Idle **Reprompts before giving up**       | 0–5; default 2                                            |
| Idle **After reprompts exhausted**        | End the call or Keep the call going; default End the call |
| Idle **Disposition**                      | Optional; must be one of the agent's own dispositions     |
| **Maximum call duration**                 | 60,000–7,200,000 ms; unset means no limit                 |
| **Warning lead time**                     | 5,000–300,000 ms; must be less than the max duration      |
| **Warning prompt**                        | Paired with a lead time; up to 500 characters             |
| **Consecutive failures before giving up** | 1–10; default 3                                           |
| **Tool timeout**                          | 1,000–20,000 ms; default 15,000                           |
| **Steering judge timeout**                | 500–10,000 ms; default 2,000                              |
| **Handoff history depth**                 | 1–200 messages; default 40                                |
| **Max retry attempts**                    | 1–6; default 3                                            |
| **Initial retry delay**                   | 100–10,000 ms; default 1,000                              |
| **Max retry delay**                       | 100–20,000 ms; default 4,000                              |

## Troubleshooting

**The agent hangs up on a caller who's still there, just quiet.** Raise **Silence before the
agent speaks up**, or switch **After reprompts are exhausted** to **Keep the call going** if a
hang-up is too aggressive for this agent.

**The idle prompt plays but the call keeps going past the reprompt count.** Check **After
reprompts are exhausted** — **Keep the call going** is working as configured; switch it to
**End the call** if that's not what you want.

**Save rejects the warning lead time.** **Warning lead time** must be strictly less than
**Maximum call duration** — lower the lead time or raise the max duration.

**Save rejects a missing prompt.** **Warning lead time** and **Warning prompt** require each
other, and **Reprompt the caller** requires an **Idle prompt** — in each case the agent arms the
timer only when there's something to speak, so the setting would otherwise save and never take
effect. Write the missing half, or clear the setting that needs it. **End the call** is the one
exception: it needs no prompt, because hanging up in silence still ends the call.

**The call ends with no warning.** **Warning lead time** and **Warning prompt** both require a
**Maximum call duration** to be set; the warning does nothing without a duration to warn ahead of.

**The agent gives up on a call after a string of tool or model errors.** That's
**Consecutive failures before giving up** doing its job. Raise it if a few transient
failures shouldn't end the call, but a higher number also means callers wait through more failed
turns before the agent gives up.

**A handoff to a workflow seems to lose earlier context.** Raise **Handoff history depth** — the
default carries 40 recent messages; a long conversation before the handoff can lose earlier
turns above that.

## Next steps

<Cards>
    <Card
        title="Voice & Speech"
        href="/docs/agents/voice-agents/voice-and-speech"
        description="Barge-in, the voice cascade, and turn-taking sensitivity."
    />
    <Card
        title="Safety"
        href="/docs/agents/voice-agents/safety"
        description="The steering-rules judge these reliability settings tune."
    />
</Cards>
