Skip to content

[bluebubbles] Add maxMessageAge filter to drop stale re-delivered webhooks #19176

@iranitehrani

Description

@iranitehrani

Problem

BlueBubbles occasionally re-delivers old message webhooks as if they are new (known BB behavior). This causes OpenClaw to process and reply to messages that are hours or days old, confusing the user.

Additionally, when the agent is overloaded (529/rate-limit), the error text ("The AI service is temporarily overloaded. Please try again in a moment.") is sent back as an iMessage reply rather than being silently dropped.

Expected Behavior

  1. Inbound messages older than a configurable threshold (e.g. 5 minutes) should be silently dropped
  2. Internal error/overload messages should never be forwarded to messaging surfaces

Proposed Solution

Add an optional config field under channels.bluebubbles:

{
  "channels": {
    "bluebubbles": {
      "maxMessageAgeSec": 300
    }
  }
}

Messages with a dateCreated timestamp older than maxMessageAgeSec from now would be dropped at the inbound handler level.

Environment

  • OpenClaw: 2026.2.6-3
  • BlueBubbles: 1.9.9 (Private API enabled)
  • macOS 14.6.0, Apple Silicon

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleMarked as stale due to inactivity

    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