openclaw - 💡(How to fix) Fix bug(signal): heartbeat/session final replies can stay internal instead of reaching Signal [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
openclaw/openclaw#70644Fetched 2026-04-24 05:55:11
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Participants

Root Cause

This creates false confidence that follow-through happened when the actual user-facing channel only got half the story.

For heartbeat-driven work, that is especially bad because the whole point is trustworthy proactive follow-through.

RAW_BUFFERClick to expand / collapse

Problem

In live Signal DM use, some assistant follow-up/final messages are visible in the internal session transcript (agent:main:signal:direct:+1...) but do not actually arrive to the human in Signal.

Observed symptoms:

  • the human receives the early "starting..." receipt but not the final report
  • the internal session shows the assistant produced the missing final text
  • cron job state can still show lastDeliveryStatus: delivered
  • raw leakage like terminated has also appeared in the same general heartbeat/session-delivery area

Why this matters

This creates false confidence that follow-through happened when the actual user-facing channel only got half the story.

For heartbeat-driven work, that is especially bad because the whole point is trustworthy proactive follow-through.

Desired outcome

When a heartbeat/session/cron run produces user-facing output for a Signal DM:

  • the final report should reliably egress to Signal, not just remain in the internal session transcript
  • delivery status should reflect real user-visible delivery, not only internal completion bookkeeping
  • internal runtime strings like terminated should never leak into the user-visible channel

Acceptance shape

  • no more cases where the internal session shows a final assistant reply that never appears in Signal
  • cron/session delivery status matches the actual user-visible result
  • heartbeat follow-ups reliably land end-to-end in Signal
  • if delivery fails, surface it as an explicit delivery failure instead of a silent transcript-only success

Notes

This surfaced in the main Signal DM while running heartbeat-driven repo housekeeping and damage-report follow-through. A concrete example was a 10 AM damage report where the start note arrived but the final red/yellow/green report did not.

extent analysis

TL;DR

The issue can be addressed by ensuring that the final report is properly sent to Signal and updating the delivery status to reflect the actual user-visible result.

Guidance

  • Investigate the cron job's lastDeliveryStatus update logic to ensure it accurately reflects the delivery outcome, rather than just internal completion.
  • Review the Signal API integration to verify that the final report is being sent correctly and not getting lost in transit.
  • Check for any potential issues with the heartbeat-driven workflow that might cause the final report to not be sent or to be marked as delivered prematurely.
  • Consider adding error handling and logging to surface explicit delivery failures instead of silent transcript-only successes.

Example

No code snippet is provided due to lack of specific implementation details.

Notes

The root cause of the issue is unclear, but it appears to be related to the interaction between the cron job, heartbeat-driven workflow, and Signal API integration. Further investigation is needed to determine the exact cause.

Recommendation

Apply a workaround to improve the accuracy of the delivery status and ensure that the final report is sent correctly, such as adding additional logging and error handling to detect and surface delivery failures.

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

openclaw - 💡(How to fix) Fix bug(signal): heartbeat/session final replies can stay internal instead of reaching Signal [1 participants]