Files
bot/docs/concepts/retry.md
zooqueen 071e3f1082 rebrand: openclaw -> hanzo bot across entire codebase
Automated rebrand of all openclaw references to hanzo bot:
- Package: openclaw -> @hanzo/bot
- Binary: openclaw -> hanzo-bot
- Config: ~/.openclaw -> ~/.hanzo/bot
- Docker: ghcr.io/hanzoai/bot
- Env vars: OPENCLAW_* -> BOT_*
- Bundle IDs: ai.hanzo.bot.*
- Product name: Hanzo Bot
2026-03-19 13:52:32 -07:00

1.4 KiB

summary, read_when, title
summary read_when title
Retry policy for outbound provider calls
Updating provider retry behavior or defaults
Debugging provider send errors or rate limits
Retry Policy

Retry policy

Goals

  • Retry per HTTP request, not per multi-step flow.
  • Preserve ordering by retrying only the current step.
  • Avoid duplicating non-idempotent operations.

Defaults

  • Attempts: 3
  • Max delay cap: 30000 ms
  • Jitter: 0.1 (10 percent)
  • Provider defaults:
    • Telegram min delay: 400 ms
    • Discord min delay: 500 ms

Behavior

Discord

  • Retries only on rate-limit errors (HTTP 429).
  • Uses Discord retry_after when available, otherwise exponential backoff.

Telegram

  • Retries on transient errors (429, timeout, connect/reset/closed, temporarily unavailable).
  • Uses retry_after when available, otherwise exponential backoff.
  • Markdown parse errors are not retried; they fall back to plain text.

Configuration

Set retry policy per provider in ~/.hanzoai/bot.json:

{
  channels: {
    telegram: {
      retry: {
        attempts: 3,
        minDelayMs: 400,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
    discord: {
      retry: {
        attempts: 3,
        minDelayMs: 500,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
  },
}

Notes

  • Retries apply per request (message send, media upload, reaction, poll, sticker).
  • Composite flows do not retry completed steps.