hermes - 💡(How to fix) Fix Chat gateways should not send backend status/errors for empty responses

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…

When a chat-platform agent intentionally produces no user-facing text (for example because a prompt/routing rule says to stay silent), Hermes can leak backend lifecycle/error/status messages into user-visible channels.

This makes a valid silent outcome look like a broken bot.

Error Message

When a chat-platform agent intentionally produces no user-facing text (for example because a prompt/routing rule says to stay silent), Hermes can leak backend lifecycle/error/status messages into user-visible channels.

  • gateway conversion of empty final_response plus error into a visible warning response
  • treat empty output as a valid no-op, not an error message

Root Cause

When a chat-platform agent intentionally produces no user-facing text (for example because a prompt/routing rule says to stay silent), Hermes can leak backend lifecycle/error/status messages into user-visible channels.

Fix Action

Fix / Workaround

  • Empty response from model — retrying (n/3)
  • The model returned no response after processing tool results...
  • Codex response remained incomplete after 3 continuation attempts
  • lifecycle/tool/progress messages such as terminal/read/patch/interruption status
RAW_BUFFERClick to expand / collapse

Summary

When a chat-platform agent intentionally produces no user-facing text (for example because a prompt/routing rule says to stay silent), Hermes can leak backend lifecycle/error/status messages into user-visible channels.

This makes a valid silent outcome look like a broken bot.

Observed leak paths

Examples of messages that can appear in chat channels:

  • Empty response from model — retrying (n/3)
  • The model returned no response after processing tool results...
  • Codex response remained incomplete after 3 continuation attempts
  • lifecycle/tool/progress messages such as terminal/read/patch/interruption status

Expected behavior

For chat platforms where silence is a valid routing outcome:

  • empty model output should send nothing to the channel
  • retry/status/debug/tool lifecycle messages should be logged only
  • internal sentinel values such as (empty) should never be user-visible
  • normal non-empty assistant responses should still be delivered as usual

This is especially important in shared/group channels, where debug text creates noise and makes the agent appear broken.

Likely areas to fix

The issue appears to involve multiple paths rather than a single prompt problem:

  • run_agent.py lifecycle status emission (_emit_status / status callback path)
  • gateway status callback forwarding to platform adapters
  • gateway empty-response normalization from (empty) into user-facing text
  • gateway conversion of empty final_response plus error into a visible warning response
  • tool/progress/interruption event rendering in chat channels

Suggested fix

Introduce a platform/channel-level policy for user-visible diagnostics, e.g.:

  • keep lifecycle/debug/status events in logs by default for shared chat platforms
  • only send final assistant content when non-empty
  • treat empty output as a valid no-op, not an error message
  • make any visible diagnostic behavior opt-in/configurable

No private logs, chat IDs, user IDs, tokens, or local paths are included here.

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…

FAQ

Expected behavior

For chat platforms where silence is a valid routing outcome:

  • empty model output should send nothing to the channel
  • retry/status/debug/tool lifecycle messages should be logged only
  • internal sentinel values such as (empty) should never be user-visible
  • normal non-empty assistant responses should still be delivered as usual

This is especially important in shared/group channels, where debug text creates noise and makes the agent appear broken.

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 - 💡(How to fix) Fix Chat gateways should not send backend status/errors for empty responses