Custom LLM provider disappears from Configure screen (replaced by a phantom "Hermes One — key set" card) after a session hits a mismatched provider/model 404
Summary
A previously-configured custom LLM provider (a local OpenAI-compatible endpoint added via "Add provider" → "Custom provider") disappeared entirely from the "LLM Providers" section of the Configure screen, even though the underlying providers.json, models.json, and config.yaml on disk still had the correct, untouched data the whole time. In its place, an unexpected "Hermes One" card appeared showing "key set" (masked dots) — despite there being no HERMESONE_API_KEY anywhere in .env.
Restarting the app (fully quitting and relaunching) did not fix this. The only way to recover was manually deleting and re-adding the same provider (same name/URL/key) via "Add provider" → "Custom provider".
Environment
- hermes-desktop: 0.7.7 (
npm run dev, Windows 11) - hermes-agent: 0.21.3
What likely triggered it
Shortly before the provider disappeared, one chat session got into a bad state where it was sending requests to provider=custom:hermesone base_url=https://inference.hermesone.org/v1 while still carrying model=hermes-qwen (the locally-configured custom provider's model name) — producing repeated HTTP 404: 404 page not found errors. This looks like it came from a stale/incorrect per-session model override (desktop_session_model_overrides table, src/main/session-model-override-store.ts), possibly set from browsing the "Browse Models" catalog picker.
Shortly after that session errored out, the "LLM Providers" section on the Configure screen stopped showing the real custom provider at all, and started showing a "Hermes One" card with a key that doesn't exist in .env.
Verified while debugging
providers.json— correct, custom provider entry present the whole timemodels.json— correct, model entry present the whole timeconfig.yamlproviders:andmodel:blocks — correct the whole time.env— hasCUSTOM_PROVIDER_<NAME>_KEY=...for the real provider; noHERMESONE_API_KEYline exists anywhere- Only one Electron instance was running (checked via process list) — not a duplicate-window issue
Expected behavior
The "LLM Providers" list should reflect providers.json/models.json/config.yaml reliably, and a stray/corrupt per-session override in one chat tab shouldn't be able to make an unrelated, correctly-configured provider vanish from the global Configure screen (or fabricate a "Hermes One — key set" card that doesn't correspond to any real key).
Workaround
Delete and re-add the same custom provider from "Add provider" → "Custom provider" (same name/base URL/key). This restores it immediately and the model becomes selectable again.
Source: fathah/hermes-desktop