Skip to content

iMessage echo loop leaks internal metadata and amplifies NO_REPLY into queue overflow #33281

@JaniJegoroff

Description

@JaniJegoroff

Summary

Severe iMessage delivery bug: assistant internal metadata and control outputs are being echoed back as inbound user messages, creating recursive message amplification and queue overflow.

Observed symptom examples in user-visible traffic:

  • NO_REPLY ... +#+#+#+#+#+assistant to=final ...
  • long repeated self-echo chains containing internal assistant markers

This turned routine silent acknowledgements into hundreds of reflected messages.

Impact

  • User iMessage chat gets flooded with spammy echoed content
  • Recursive loop can trigger queue overflow (Dropped messages due to cap)
  • Internal/implementation markers leak into user channel (privacy/integrity risk)

Repro pattern (high confidence)

  1. iMessage channel active.
  2. Assistant sends NO_REPLY (or short auto reply) on periodic jobs.
  3. Delivery path reflects assistant output (including internal metadata markers) back as inbound content.
  4. Agent processes reflected content, emits another NO_REPLY.
  5. Loop repeats and escalates.

Expected

  • Assistant-internal markers (e.g., assistant to=final, reasoning/meta wrappers) must never be delivered to user channels.
  • Outbound assistant messages should not be re-ingested as new inbound user messages in the same chat.
  • NO_REPLY should be consumed internally, not mirrored back.

Actual

  • Internal markers appear in iMessage chat.
  • Messages are reflected into inbound queue, causing self-echo recursion.

Temporary mitigations used

  • Paused user-facing announce cron jobs to reduce blast radius.
  • Continued core monitoring manually while incident active.

Environment

  • macOS host (OpenClaw latest stable around 2026-03-03)
  • iMessage channel
  • Gateway loopback setup

Requested fixes

  1. Strict sanitization at channel boundary: strip assistant-internal/meta fields before transport.
  2. Add anti-reflection guard (do not ingest assistant-originated outbound payloads as inbound user messages).
  3. Treat NO_REPLY as terminal internal signal only.
  4. Add loop protection/rate limit for identical self-echo patterns.
  5. Add telemetry marker for reflected-message detection.

Metadata

Metadata

Assignees

Labels

dedupe:parentPrimary canonical item in dedupe cluster

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