AgentFixboard

session.create provider override keeps the profile's stale model.base_url

A local session.create with a provider override and no base_url sends the new provider's key to the old host. The log is API call failed (attempt 1/3, not retryable) with error_type=AuthenticationError and HTTP 401.

From GitHub

NousResearch/hermes-agent

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
—
Last checked

Unverified: we could not confirm from the sources that a fix shipped. Source: PR #139613 merged. Last checked 2026-10-19.

Symptom

A local session.create with a provider override and no base_url sends the new provider's key to the old host. The log is API call failed (attempt 1/3, not retryable) with error_type=AuthenticationError and HTTP 401.

Evidence what you'll see

  • The report's log is agent.conversation_loop: API call failed (attempt 1/3, not retryable) then error_type=AuthenticationError provider=xiaomi then base_url=https://api.deepseek.com/v1 model=mimo-v2.6-flash then summary=HTTP 401: Authentication Fails, Your api key: ****92rk is invalid.
  • The same key authenticated against the new provider's own endpoint. Removing model.base_url from config.yaml made the identical pick work.
  • The 401 also marked the provider's pooled credential exhausted, so auxiliary calls then reported main provider xiaomi is unavailable.

Why it happens

The provider pick folded into the session's frozen model block while leaving the profile's model.base_url in place. Pull request 139613 drops the replaced provider's base_url, api_mode, and key settings before the override applies. An explicit base_url in the same request still wins.

Affected versions

macOS, Hermes Desktop (composer pick, source: "gui"). The profile config.yaml pinned model.base_url: https://api.deepseek.com/v1. The linked issue does not name a Hermes version string beyond that Desktop session.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • The next session.create with a provider override and no base_url does not log HTTP 401 against the previous provider's base_url.

If it still fails

  • No published release tag contains pull request 139613. Tags v0.22.0, v0.22.1, and v0.22.2 were compared against merge 43faacfb8de7 and do not contain it.

Sources and credit

Summarized in our own words from these public reports. Credit goes to their authors.

Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change

Hit an error we don't cover? Submit it