A aparência da falha

O Desktop exibiu dois avisos: timeout esperando o lock do auth store e timeout conectando ao backend. No Telegram, a resposta virou Provider authentication failed. Os sintomas apontavam para lugares diferentes, por isso a primeira tarefa foi separar instrução, evidência e causa.

O gateway estava vivo

O serviço hermes-gateway permaneceu ativo desde o último update, com o endpoint de saúde respondendo HTTP 200. O estado do gateway registrava Telegram conectado e não havia sinal de crash ou OOM. O único restart observado pertenceu ao fluxo controlado de atualização para a versão 0.20.5.

A credencial Nous expirou

O provider ativo tinha uma única credencial OAuth/device-code. O registro indicava expiração do token e da agent key às 13:06 BRT; o pool a marcou como exhausted. Nos minutos críticos, o log registrou 401 do endpoint Nous, com a mensagem de credencial inválida, bloqueada ou sem fundos. Sem reautenticação ou consulta ao portal, não é possível afirmar qual dessas três condições externas prevaleceu.

Quando a única entrada fica exaurida, o Hermes não tem uma segunda credencial para alternar. O erro que chega ao Telegram é, portanto, coerente com o estado persistido do pool.

Por que o Desktop também reclamou

O Desktop abriu backends em sequência, todos alcançando HERMES_BACKEND_READY, enquanto instâncias anteriores eram encerradas como stale. Durante essa contenção, agentes e chamadas de configurações disputaram o mesmo fluxo de autenticação. O timeout de 15 segundos do lock foi transitório: no fechamento da auditoria, não havia processo segurando auth.lock.

Isso muda a ação correta. Apagar o arquivo de lock não corrige uma credencial Nous exaurida e pode destruir evidência; o próximo passo é revalidar o provider, não limpar o filesystem por reflexo.

Um segundo sintoma, separado

O log também mostrou STT OpenAI configurado sem API key. Isso afeta transcrição e wake word quando essa rota é usada, mas não é a causa primária da falha do modelo Nous.

Diagnóstico é devolver cada sintoma ao componente que realmente o produz. Um lock transitório pode bloquear a tela; só a credencial rejeitada bloqueia o provider.