hermes - ✅(Solved) Fix [Bug]: Telegram flood-control fallback stops coalescing tool progress and starts sending new messages [1 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#25188Fetched 2026-05-14 03:48:10
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×4cross-referenced ×1

Error Message

Additional Logs / Traceback (optional)

Do not permanently disable progress editing after a single flood-control error.

Root Cause

Root Cause Analysis (optional)

Fix Action

Fix / Workaround

Example symptom: 🔧 patch: "src/components/Button.tsx" (×5)

PR fix notes

PR #25198: fix(gateway): keep tool-progress edits alive after Telegram flood control

Description (problem / solution / changelog)

Fixes #25188

Problem

When a tool-progress edit hits Telegram flood control (RetryAfter), can_edit was unconditionally set to False, permanently disabling progress message coalescing for the rest of the run. All subsequent tool updates were posted as separate new messages instead of updating the existing progress bubble.

Fix

Only set can_edit = False for non-recoverable edit errors. On flood control, back off by resetting _last_edit_ts so the existing throttle interval is respected before the next edit attempt. Coalescing resumes automatically after the backoff window.

Root cause

In send_progress_messages() inside gateway/run.py, the can_edit = False assignment was outside the if "flood" in _err block, so it fired for every edit failure regardless of cause.

Changed files

  • gateway/run.py (modified, +6/-5)

Code Example

WARNING gateway.platforms.telegram: [Telegram] Telegram flood control, waiting 14.0s
INFO gateway.run: [Telegram] Progress edits disabled due to flood control
RAW_BUFFERClick to expand / collapse

Bug Description

On Telegram, Hermes normally coalesces tool-progress updates into a single edited message.

After a long run with many tool calls, if one progress edit hits Telegram flood control (RetryAfter), Hermes stops editing that progress message and starts sending fresh tool-progress messages for the rest of the run.

Example symptom: 🔧 patch: "src/components/Button.tsx" (×5)

This appears as a new message instead of updating the existing progress bubble.

Expected Behavior

Tool progress should continue to coalesce into one edited message.

If Telegram rate-limits an edit, Hermes should wait and resume editing later, or buffer updates temporarily. It should not degrade into posting separate progress messages for the rest of the run.

Actual Behavior

After one flood-control hit, progress-message editing is effectively disabled for that run, and later tool updates are posted as separate new messages.

Affected Component

  • Gateway

Messaging Platform (if gateway-related)

  • Telegram

Additional Logs / Traceback (optional)

WARNING gateway.platforms.telegram: [Telegram] Telegram flood control, waiting 14.0s
INFO gateway.run: [Telegram] Progress edits disabled due to flood control

Root Cause Analysis (optional)

This looks like a gateway state bug:

  • Telegram progress-message edit hits flood control
  • the adapter returns a failed edit
  • the gateway sets can_edit = False
  • subsequent tool-progress updates fall back to send(...) instead of edit_message(...)

The problem is that editing is disabled for the remainder of the run instead of recovering after the flood window passes.

Proposed Fix (optional)

Do not permanently disable progress editing after a single flood-control error.

Instead:

  • keep the same progress message alive
  • wait until retry_after expires, or
  • buffer/coalesce updates until editing is allowed again

At minimum, the fallback should recover automatically instead of turning all later progress updates into separate messages.

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]: Telegram flood-control fallback stops coalescing tool progress and starts sending new messages [1 pull requests, 1 participants]