hermes-gateway-troubleshooting
Skill0 starsChanged 4 months agoMITView on GitHub
Troubleshoot Hermes gateway/Discord sessions that appear stuck, retrying, or silent while an agent turn is still running.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- iberi22/skillstheir own version, first seen Oct 15, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- iberi22/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 7 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Use this skill when Gavin asks why Hermes is stuck, silent, retrying, typing forever, or not responding in Discord/Telegram/gateway …
- Very specific: line 34
Do not assume the visible gateway status line is the current blocker.
- Very specific: line 38
Identify the thread/session from logs: Search ~/.hermes/logs/gateway.log and ~/.hermes/logs/agent.log for the user's message text, Discord …
- Very specific: line 54
Use lightweight status tools first: Prefer log search/read and process(action="list") before broad terminal probes.
- Distinctive: line 78
Use short bullets. Avoid overexplaining internals unless he asks.
- Distinctive: line 95
Do not tell Gavin "the API failed" as the whole explanation if logs show later successful calls.
- Distinctive: line 96
Do not treat a retry banner as proof the current process is dead.
- Distinctive: line 97
Do not kill or preempt GPU/model-loading jobs unless Gavin explicitly asks.
- Very specific: line 98
Do not retry a terminal command that returned an approval timeout warning.
- Distinctive: line 99
Do not save transient provider failures as durable negative claims about Hermes or a provider.
- Distinctive: line 101
Do not implement split-pane resizing as hover/proximity behavior.
- Very specific: line 102
Do not assume Thread Canvas visual changes belong in thread_canvas.html itself.
- Very specific: line 103
Do not assume a regenerated static web log will update inside mobile Safari/Discord webview if the clean-chat iframe URL is unchanged.
- Very specific: line 104
Do not answer a Thread Canvas request with the normal thread index.html, a Thread Files PDF/PPTX, or a promoted artifact link.
- Distinctive: line 105
Do not rely on long underscore-heavy Discord paths if Gavin's mobile browser opens the wrong target.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Hermes Gateway Troubleshooting
When to Use
Use this skill when Gavin asks why Hermes is stuck, silent, retrying, typing forever, or not responding in Discord/Telegram/gateway sessions.
Typical trigger phrases:
- "why stuck here", "why stocked here", "what is going on"
- screenshot shows
Retrying in … (attempt 1/3)or gateway typing indicator - Discord thread has no final answer after a long project turn
- background process completion notifications appear to have derailed or delayed a session
- Discord web-log / thread-canvas link fails with browser DNS errors such as
ERR_NAME_NOT_RESOLVEDfor atrycloudflare.comhostname - Gavin reports a Discord web-log page cannot be opened, especially browser DNS errors like
ERR_NAME_NOT_RESOLVEDfor a*.trycloudflare.comlink - Gavin reports Thread Canvas is showing an old message, the clean-chat pane is stale, or a new Discord/web-log message is missing despite the page loading
- Gavin asks to improve Discord web-log research pages, Thread Canvas, thread-file previews, split chat/artifact panes, role-colored message styling, refresh behavior, or linked-file side panels
- Gavin asks for the Thread Canvas page/link and rejects an old thread log, artifact file, PPTX/PDF, or mobile file preview
- Gavin asks to “show/send the correct working Thread Canvas again” after an old
trycloudflare.comlink was posted
First Principle
Do not assume the visible gateway status line is the current blocker. A stale Retrying in … message may only reflect a transient model stream failure that recovered, while the agent continued through many tool calls afterward. Diagnose from logs and session/process state before answering.
Investigation Checklist
- Identify the thread/session from logs. Search
~/.hermes/logs/gateway.logand~/.hermes/logs/agent.logfor the user's message text, Discord chat/thread id, or visible status text. - Establish timeline, not just the first error. For the matching session id, inspect:
- inbound message time and chat id,
- model/provider and session id,
- API retry/error lines,
- subsequent API calls/tool completions,
- final
Turn endedorresponse readylines.
- Distinguish common states.
- Transient upstream/API retry: log has
API call failed (attempt 1/3)followed by later successfulAPI call #...lines. - Long-running turn: many
API call #N, tool completions,process completed, or large token counts continue after the visible status. - Background-process handoff:
Process proc_... finished — injecting agent notificationcreates a new turn in the same thread. - Compression stall: look for
context compression started,Failed to generate context summary, or session hygiene lines. - Tool approval timeout: tool result includes
BLOCKED: Command timed out without user response; report this honestly and do not retry the same command.
- Transient upstream/API retry: log has
- Use lightweight status tools first. Prefer log search/read and
process(action="list")before broad terminal probes. In Discord troubleshooting turns, broadps/system-state terminal commands can trigger approval/timeout and make the status response worse. - For Discord web-log links, distinguish local server health from public tunnel health. If a
trycloudflare.comweb-log URL gives DNSERR_NAME_NOT_RESOLVED, check the old hostname withgetent hosts, check localhttp://127.0.0.1:8777/, then start a freshcloudflared tunnel --url http://127.0.0.1:8777, verify the new URL, and updatediscord.web_log_base_urlviahermes config setrather than editing protected config files directly. If the current base URL and local server both return200, also verify the specific thread path the user is trying to open before rotating tunnels; often the fix is simply to send the raw direct URL because Discord preview/browser embedding failed while the page itself is healthy. Seereferences/discord-web-log-quick-tunnel-expiry.md. - For research web-log file previews, curate artifacts rather than dumping attachments. Thread-file panels should show only manually promoted/linked important artifacts with human titles/nicknames. Do not expose raw local paths,
image.png,img_xxx.webp, or every auto-cached screenshot in the visible Thread Files list. If an image is crucial, promote it with a title such asCrucial UI Bug Screenshot; otherwise keep it out of the curated list. Split preview panes should have hide/show controls, and the splitter should resize only while actively dragging, not on hover. Seereferences/discord-web-log-thread-file-preview.md. - For Thread Canvas readability complaints, style the iframe content, not just the shell. If Gavin says he cannot see whether a message is from him or Hermes, add role-specific classes from the message
directionand use subtle but distinct backgrounds/borders fordirection-uservsdirection-assistant. Apply this in bothchat_log_clean.htmland the normal threadindex.html;thread_canvas.htmlonly embeds the clean chat in an iframe, so shell-only CSS will not affect message cards. After changing it, refresh/regenerate the static web log and verify both files contain the role classes/styles. Seereferences/discord-thread-canvas-role-coloring.md. - Use lightweight status tools first. Prefer log search/read and
process(action="list")before broad terminal probes. In Discord troubleshooting turns, broadps/system-state terminal commands can trigger approval/timeout and make the status response worse. - For web-log canvas link DNS failures, separate local server health from tunnel hostname health. If a
trycloudflare.comURL returnsERR_NAME_NOT_RESOLVED, check whetherhttp://127.0.0.1:8777/still returns 200. If local works, start a fresh quick tunnel, verify the new URL, updatediscord.web_log_base_urlviahermes config set, and tell Gavin old links can be repaired by replacing only the hostname. Seereferences/discord-web-log-quick-tunnel-expiry.md.
For Thread Canvas link requests, send only the actual canvas URL. Gavin's phrase "Thread Canvas" means the static split-pane page ending in /thread_canvas.html (chat left, artifact preview right). For artifact drawer hygiene and readable HTML expectations, see references/thread-canvas-artifact-hygiene.md.
Detailed checklist: see references/thread-canvas-artifact-hygiene.md for link verification, curated drawer rules, mobile-readable HTML artifact requirements, and cache-busting stale previews. (chat left, artifact preview right). Never send the directory/root URL, normal thread index.html, chat_log_clean.html, a PDF/PPTX, CSV, or a Thread Files artifact when he asks for Thread Canvas. A wrong target can still return HTTP 200, so verify both: URL path ends with /thread_canvas.html and the HTML title/body contains Thread Canvas - .... If mobile/Discord opens the wrong item or the full path is long, create a short clean alias under the web root (for example /sae-bench-canvas/thread_canvas.html) and verify that alias before sending. See references/discord-thread-canvas-direct-link-vs-artifact.md.
- Answer with a concise diagnosis. Include:
- what the visible status/link error meant,
- whether it recovered or the replacement link works,
- what the agent is/was actually doing now,
- safest next action (
wait,/stop, ask for artifact summary, inspect specific outputs, or use the repaired web-log link).
Response Pattern for Gavin
Use short bullets. Avoid overexplaining internals unless he asks.
Example:
It is not stuck exactly at the visible retry line.
Logs show:
- openai-codex/gpt-5.5 had a transient stream/protocol failure and retried.
- the retry recovered; the session continued through many API/tool calls.
- the real delay is the long single turn / background process / compression step.
Safest next move: send /stop if you want control back, then ask for a current artifact summary and next concrete step.Pitfalls
- Do not tell Gavin "the API failed" as the whole explanation if logs show later successful calls.
- Do not treat a retry banner as proof the current process is dead.
- Do not kill or preempt GPU/model-loading jobs unless Gavin explicitly asks.
- Do not retry a terminal command that returned an approval timeout warning; switch to non-destructive log/session/process tools or stop.
- Do not save transient provider failures as durable negative claims about Hermes or a provider. Capture the diagnostic pattern, not the one-off outage.
- Do not display auto-cached Discord attachments or raw data/source/download files as curated research thread files. Promote only viewable human artifacts (HTML/PDF/PNG/JPG/WebP) with human-readable titles; keep CSV/XLSX/TSV/Parquet, PPTX/DOCX, Markdown readouts, and extensionless copied files under export paths unless Gavin explicitly asks for a download.
- Do not implement split-pane resizing as hover/proximity behavior. The boundary should move only during active drag/click-hold.
- Do not assume Thread Canvas visual changes belong in
thread_canvas.htmlitself. The left chat ischat_log_clean.htmlinside an iframe; message-card role coloring must be rendered into the iframe document and also into the normal thread log. - Do not assume a regenerated static web log will update inside mobile Safari/Discord webview if the clean-chat iframe URL is unchanged. Add an explicit refresh path/cache-busting iframe
srcand verify the embeddedchat_log_clean.htmlseparately. - Do not answer a Thread Canvas request with the normal thread
index.html, a Thread Files PDF/PPTX, or a promoted artifact link. Verifythread_canvas.html/HTML MIME specifically; HTTP 200 alone is not enough. - Do not rely on long underscore-heavy Discord paths if Gavin's mobile browser opens the wrong target. Provide a short verified alias to the canvas page.
References
references/discord-stale-retry-vs-running-turn.md— session-derived pattern for a Discord screenshot showingRetrying in 2.1swhile the agent continued working afterward.references/discord-web-log-thread-file-preview.md— Gavin's preferred research web-log UX for curated thread files, human titles, hide/show panels, and drag-only split-pane resizing.references/discord-thread-canvas-role-coloring.md— implementation pattern for role-colored user vs assistant message cards in Thread Canvas / clean-chat iframes and normal thread logs.references/discord-thread-canvas-cache-refresh.md— implementation pattern for stale clean-chat iframes: Refresh chat button, cache-bustingv=parameter, near-bottom auto-refresh, and public-page verification.references/discord-thread-canvas-direct-link-vs-artifact.md— link-handling pattern for Gavin's Thread Canvas requests: send/verifythread_canvas.html, notindex.htmlor a PDF/PPTX Thread Files artifact.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

