hermes - 💡(How to fix) Fix OmniRoute compatibility: local custom providers can stall indefinitely on streamed chat completions [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#17913Fetched 2026-05-01 05:55:12
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Participants
Timeline (top)
labeled ×3renamed ×1

Root Cause

This is best understood as an OmniRoute compatibility issue because the affected requests are being sent through a local OmniRoute endpoint. For reference, the OmniRoute repository is:

Fix Action

Fix / Workaround

I have a local patch for this behavior in run_agent.py and agent/transports/chat_completions.py.

RAW_BUFFERClick to expand / collapse

Hermes requests routed through a local custom provider can appear to hang indefinitely, especially for commands like hermes changelog last commits 33.

This is best understood as an OmniRoute compatibility issue because the affected requests are being sent through a local OmniRoute endpoint. For reference, the OmniRoute repository is:

Observed behavior:

  • provider=custom
  • base_url=http://localhost:20128/v1 (OmniRoute)
  • streamed chat-completions path uses the 1800s fallback request timeout
  • stream-stale detection is disabled for local endpoints
  • no default max_tokens is applied for custom providers, so output is effectively unbounded unless the caller sets one explicitly

Impact:

  • the CLI/TUI can sit on one request for a very long time with no visible progress
  • the request looks stalled even when OmniRoute is healthy

Proposed fix:

  • use a finite default timeout for local custom providers
  • keep stream-stale detection finite for local custom providers
  • apply a conservative default output cap when max_tokens is unset

I have a local patch for this behavior in run_agent.py and agent/transports/chat_completions.py.

extent analysis

TL;DR

Apply a finite default timeout and output cap for local custom providers to prevent indefinite hangs.

Guidance

  • Review the proposed fix to use a finite default timeout for local custom providers and consider implementing it.
  • Examine the run_agent.py and agent/transports/chat_completions.py files for the local patch and assess its applicability.
  • Consider enabling stream-stale detection with a finite timeout for local custom providers to detect and handle stalled requests.
  • Evaluate the impact of applying a conservative default output cap when max_tokens is unset for custom providers.

Example

No code example is provided due to the lack of specific implementation details in the issue.

Notes

The proposed fix and local patch are specific to the run_agent.py and agent/transports/chat_completions.py files, and their applicability may depend on the overall system architecture and requirements.

Recommendation

Apply workaround: Implement the proposed fix to use a finite default timeout and output cap for local custom providers, as it directly addresses the observed issue and prevents indefinite hangs.

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 - 💡(How to fix) Fix OmniRoute compatibility: local custom providers can stall indefinitely on streamed chat completions [1 participants]