Skip to content

[Bug]: Signal group messages silently dropped when using signal-cli daemon (linked device) #23064

@arturlr

Description

@arturlr

Bug Description

When Hermes connects to Signal via signal-cli in daemon mode (linked device setup), group messages sent from the user's phone are silently dropped. Direct messages work correctly. No errors appear in the gateway log — it looks like the messages just never arrive.

Root Cause

In gateway/platforms/signal.py, the _handle_envelope() method's sync message handler only processes syncMessage events where destinationNumber equals the bot's own number (Note to Self). Group messages sent from linked devices have a groupInfo.groupId as their destination instead of a destinationNumber, and are silently dropped at the return on line ~460.

The relevant condition (line ~449):

if dest == self._account_normalized:  # Only Note to Self gets through — group messages dropped

Steps to Reproduce

  1. Run signal-cli daemon --http 127.0.0.1:8080 --account +<your-number> (linked device mode)
  2. Configure Signal adapter in config.yaml with SIGNAL_HTTP_URL=http://127.0.0.1:8080
  3. Send a group message from the primary phone to a Signal group
  4. Observe: gateway logs show "Signal SSE: connected" but no response, no error

Expected Behavior

Group messages from linked devices should reach the agent and receive responses, just like direct messages.

Fix

Patch gateway/platforms/signal.py around line 449 to also pass through sync messages with a groupInfo.groupId:

sent_msg_group_info = sent_msg.get("groupInfo") or {}
sent_msg_group_id = sent_msg_group_info.get("groupId") if sent_msg_group_info else None
if dest == self._account_normalized or sent_msg_group_id:
    # Now handles both Note to Self AND group messages from linked devices

⚠ Recurring revert: This fix lives in the local checkout. Every hermes update overwrites local patches — re-verify after updates.

Environment

  • OS: Linux
  • Signal setup: signal-cli daemon mode (linked device)
  • Version: Hermes latest

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/gatewayGateway runner, session dispatch, deliveryplatform/signalSignal CLI adaptertype/bugSomething isn't working

    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