Skip to content

feat: Add silentErrorReplies / suppressAgentErrors support for WhatsApp channel #59782

Description

@smccaffrey

Feature Request

Problem

When the primary model (e.g., Anthropic Claude) is rate-limited or overloaded and the fallback model also fails, OpenClaw sends a generic error message to the user:

⚠️ Something went wrong while processing your request. Please try again, or use /new to start a fresh session.

This is jarring for non-technical users (e.g., business contacts using WhatsApp) who have no idea what "/new" means or why the bot broke. The Telegram channel has silentErrorReplies but WhatsApp has no equivalent.

Current behavior

  • buildExternalRunFailureText() in agent-runner.runtime always returns the error message
  • The message is delivered to WhatsApp with no way to suppress it
  • messages.suppressToolErrors only covers tool-level warnings, not agent run failures
  • silentErrorReplies only exists in the Telegram config path

Desired behavior

A config option (either global under messages or per-channel) to suppress or customize the agent failure message on WhatsApp. Options could include:

  1. messages.silentErrorReplies: true — suppress error messages entirely (silent fail)
  2. messages.errorMessage: "..." — custom error text instead of the generic one
  3. Per-channel silentErrorReplies support (WhatsApp, Signal, etc.)

The agent should ideally retry silently and only surface errors to the operator (logs), not the end user.

Context

  • WhatsApp DMs with business contacts who receive confusing error messages
  • Primary model rate limits cascade to fallback model TPM limits
  • The "/new" suggestion is meaningless on WhatsApp

Environment

  • OpenClaw 2026.4.1
  • WhatsApp channel
  • Primary: anthropic/claude-opus-4, Fallback: openai/gpt-4o

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.staleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions