hermes - ✅(Solved) Fix [Bug]: Signal group messages silently dropped when using signal-cli daemon (linked device) [2 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#23064Fetched 2026-05-11 03:31:29
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
labeled ×4cross-referenced ×2

Error Message

  1. Observe: gateway logs show "Signal SSE: connected" but no response, no error

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

Fix Action

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.

PR fix notes

PR #23070: fix(signal): pass group messages from linked devices to agent (#23064)

Description (problem / solution / changelog)

Fixes #23064.

Root cause

_handle_envelope()'s syncMessage handler only promoted Note-to-Self messages (where destinationNumber == bot's own account). Group messages from linked devices have a groupInfo.groupId instead of a matching destinationNumber, so they hit the if not is_note_to_self: return guard and were silently dropped. No error, no log — they just vanished.

Fix

Added is_linked_device_group_msg flag alongside is_note_to_self:

  • When sentMessage has groupInfo.groupId, promote it to dataMessage and set is_linked_device_group_msg = True
  • Bypass the self-loop filter for these messages (sourceNumber equals the bot account by design — it's the linked device that forwarded the message)
  • The sync-message return guard now reads: if not is_note_to_self and not is_linked_device_group_msg: return

Read receipts and other syncMessage events without sentMessage (or without groupInfo) are still filtered correctly.

Tests

  • test_sync_group_message_from_linked_device_is_delivered — group sync message reaches handle_message
  • test_sync_non_group_non_note_to_self_is_still_filtered — read receipts are still dropped

Changed files

  • gateway/platforms/signal.py (modified, +19/-4)
  • tests/gateway/test_signal.py (modified, +67/-0)

PR #23293: fix(signal): handle group messages from linked devices in syncMessage path

Description (problem / solution / changelog)

Closes #23064

When Hermes connects to Signal via signal-cli in daemon mode (linked device setup), group messages sent from the user's phone were silently dropped. The syncMessage handler only processed events where destinationNumber equals the bot's own number (Note to Self).

Group messages from linked devices carry a groupInfo.groupId instead of a destinationNumber. Extend the condition to also pass through sync messages that have a groupId, so group messages are promoted to dataMessage and reach the agent.

Changed files

  • gateway/platforms/signal.py (modified, +3/-1)

Code Example

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

---

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
RAW_BUFFERClick to expand / collapse

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

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - ✅(Solved) Fix [Bug]: Signal group messages silently dropped when using signal-cli daemon (linked device) [2 pull requests, 1 participants]