819 B
819 B
ADR 9: Graceful Degradation Error Handling
Date: 2026-04-28
Decision
When an agent is unreachable or times out, the plugin sends a user-visible "processing" or error message to the Zulip topic rather than silently dropping the request.
Context
Silent failures are confusing for users — they type @tanko-bot and get no response. A visible status message manages expectations and buys time for retries. The plugin implements:
- Retry: 3 attempts with 5s backoff
- On timeout:
:warning: Tanko is processing your request... - On failure: Agent-specific error message
- No persistent queueing in v1
Consequences
- Users always get feedback, even if the agent is slow/down
- Plugin needs a retry timer
- Error messages are configurable per agent
- v2 can add queue-based retry for better reliability