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
- Inbound messages older than a configurable threshold (e.g. 5 minutes) should be silently dropped
- 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
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
Proposed Solution
Add an optional config field under
channels.bluebubbles:{ "channels": { "bluebubbles": { "maxMessageAgeSec": 300 } } }Messages with a
dateCreatedtimestamp older thanmaxMessageAgeSecfrom now would be dropped at the inbound handler level.Environment