Skip to content

[Bug]: iMessage group media final replies can silently fail even though direct imsg send-rich succeeds #83365

@dandomin

Description

@dandomin

Summary

In an allowlisted iMessage group, image-generation requests can complete successfully and save the generated PNG under ~/.openclaw/media/tool-image-generation, but the normal OpenClaw group final-reply/media delivery does not land in the iMessage group. Manually sending the exact generated file with imsg send-rich --chat iMessage;+;<group-guid> --file <path> succeeds immediately.

This has reproduced twice in the same iMessage group after migrating from BlueBubbles to the bundled/native iMessage channel.

Environment

  • OpenClaw: 2026.5.12 (f066dd2)
  • imsg: 0.9.0
  • macOS: Apple Silicon, SIP disabled
  • imsg status --json reports:
    • advanced_features: true
    • v2_ready: true
    • bridge_version: 2
    • RPC methods include send.rich and send.attachment
  • Channel: bundled imessage
  • Group config:
    • channels.imessage.enabled: true
    • channels.imessage.groupPolicy: "allowlist"
    • numeric local chat id is explicitly allowlisted under channels.imessage.groups["5"]
    • requireMention: false

Repro

  1. Configure an iMessage group under channels.imessage.groups using the local numeric chat id.
  2. In that iMessage group, ask the agent to generate an image.
  3. Observe that the agent run reaches image generation and creates a PNG under ~/.openclaw/media/tool-image-generation.
  4. Observe that no normal group media reply lands in the originating iMessage group.
  5. Send the same file manually:
imsg send-rich --chat 'iMessage;+;<group-guid>' --file ~/.openclaw/media/tool-image-generation/<generated>.png
  1. The media appears in the group immediately.

Concrete observations

Case 1:

  • Inbound group request: "Make us an image of that joke"
  • Generated image existed at:
    ~/.openclaw/media/tool-image-generation/computer-doctor-virus-joke---86103679-31e6-46c8-8353-a8e11a27f785.png
  • Normal group delivery did not appear.
  • Manual fallback worked:
imsg send-rich --chat 'iMessage;+;<group-guid>' --file <path>

Case 2:

  • Inbound group request: "Send Del a funny picture about poop"
  • Generated image existed at:
    ~/.openclaw/media/tool-image-generation/poopception-for-del---c00aad1a-8638-486d-a0d1-6bf0da5e7bc5.png
  • Normal group delivery did not appear.
  • Manual fallback worked and local history then showed:
[sent] ...: Poop-ception, as requested.
  (1 attachment)

Why this looks like an OpenClaw delivery bug

This does not appear to be:

  • group admission / allowlist: text replies in the same group work, and the group is explicitly allowlisted by numeric chat id
  • image generation: the PNG file is created successfully
  • imsg bridge capability: direct imsg send-rich with the same file and group GUID succeeds
  • basic iMessage outbound: direct DM text/media sends work

The weak link appears to be OpenClaw's iMessage group media final-reply path, or a missing fallback from the generic media delivery path to imsg send-rich / send.attachment for iMessage groups.

Expected

When an image-generation tool returns a generated image for an iMessage group turn, OpenClaw should deliver that image back to the originating group, or surface a clear delivery failure and/or retry via the known-good rich-send path.

Actual

The generated artifact exists, but the originating iMessage group receives no media reply. Manual direct imsg send-rich delivery succeeds.

Related issues checked

I searched for an exact duplicate and did not find one. Related but not exact:

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.

    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