Skip to content

Feature Request: delivery.maxRetries config for delivery queue #30496

@longxwl

Description

@longxwl

Problem

Currently, messages in the delivery queue can retry indefinitely without a configurable upper limit. When Telegram/other channels are temporarily unavailable, failed items accumulate and may be re-delivered unexpectedly after gateway restarts.

Proposed Solution

Add a delivery.maxRetries configuration option:

{
  "delivery": {
    "maxRetries": 3,
    "failedDir": "~/.openclaw/delivery-queue/failed/"
  }
}

Behavior:

  • After maxRetries attempts, move item to failedDir instead of retrying
  • Items in failedDir are never auto-retried
  • Emit a system event or log entry when an item is moved to failed

Current Workaround

Using a LaunchAgent script that monitors failed/ directory and sends Telegram alerts, plus Heartbeat scanning. But this is a workaround — native support would be cleaner.

Use Case

Prevents 'ghost message' delivery after extended outages, while still allowing inspection of failed items.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions