Skill: hermes-dashboard-plugin-troubleshooting
- typ: interní publikace agentem vytvořeného skillu
- vytvořil:
agent - created_at:
2026-05-22T05:46:08.464549+00:00 - patch_count:
1 - dostupné profily:
default - zdroj:
~/.hermes/skills/software-development/hermes-dashboard-plugin-troubleshooting/SKILL.md
Hermes dashboard plugin troubleshooting
Use this when the Hermes web dashboard shows errors like:
- COULD NOT LOAD THIS PLUGIN’S SCRIPT
- plugin tab exists but opening it fails
- /dashboard-plugins/... requests 404 or behave inconsistently
Goal
Separate three different failure classes before changing any proxy or public access settings: 1. Local dashboard/plugin registry problem 2. Reverse-proxy/subpath problem 3. Intentional access-control block
Do not fix this class of issue by widening public access unless the user explicitly asks for that.
Workflow
- Check local dashboard first against
127.0.0.1:9119. - Query
/api/dashboard/plugins - Check the plugin script path locally
-
If the dashboard is mounted under a subpath, send
X-Forwarded-Prefixmatching that subpath -
Compare advertised plugins vs real scripts.
- If
/api/dashboard/pluginslists pluginNAME, verify:/dashboard-plugins/NAME/dist/index.js- optional CSS path from plugin metadata
-
If metadata advertises a plugin but its local script is
404, the problem is a stale/broken plugin registration, not public networking. -
Verify local routes before touching Caddy.
//api/dashboard/plugins/dashboard-plugins/<name>/dist/index.js-
relevant SPA route such as
/exampleor/kanban -
Only then inspect public behavior.
403on every/kanban/*route usually means allowlist/access-control404publicly while local works usually means proxy/routing mismatch- mixed
404/plugin errors can still come from a bad plugin advertised by the local registry
Fix patterns
A. Advertised plugin has no local script
Symptom pattern:
- /api/dashboard/plugins includes plugin NAME
- local /dashboard-plugins/NAME/dist/index.js returns 404
Fix:
- disable that plugin locally instead of exposing more routes
- common safe method for local optional plugins: disable/remove/rename its dashboard manifest so it is no longer advertised
- restart hermes-dashboard.service
- re-check /api/dashboard/plugins and confirm the broken plugin disappeared
B. Local works, public /kanban/* blocked
That is an access-control/proxy issue, not a dashboard build issue. Do not claim the plugin path is broken until local checks fail too.
C. Dashboard service broken after updates
If the service itself will not start, rebuild the web frontend first, then restart the service. See references/rebuild-and-example-plugin-404.md.
Verification checklist
After any fix:
- dashboard service is active (running)
- plugin registry no longer advertises broken plugins
- needed plugin script returns 200 locally
- intended dashboard SPA route returns 200 locally
- if public access is supposed to stay restricted, confirm no access widening was introduced
Session-specific references
references/rebuild-and-example-plugin-404.md— concrete case whereexampleplugin was advertised but missingdist/index.js, fixed by disabling its manifest instead of changing external access.