Description
After upgrading to v0.14.0, Hermes crashes with a NameError when a 429 rate limit error is encountered from a provider.
Error
Error: name '_pool_may_recover_from_rate_limit' is not defined
Root Cause
agent/conversation_loop.py imports run_agent as a module at line 81:
But at line 2254, _pool_may_recover_from_rate_limit is called without the module prefix:
pool_may_recover = _pool_may_recover_from_rate_limit(
agent._credential_pool,
provider=agent.provider,
base_url=getattr(agent, "base_url", None),
)
This causes a NameError because the function is defined in run_agent.py, not in scope of conversation_loop.py.
Fix
pool_may_recover = run_agent._pool_may_recover_from_rate_limit(
agent._credential_pool,
provider=agent.provider,
base_url=getattr(agent, "base_url", None),
)
Steps to Reproduce
- Configure a provider that hits a 429 rate limit (e.g. ollama-cloud weekly quota exhaustion)
- Trigger a conversation — Hermes fails with
NameError instead of falling back to the next provider
Environment
- Hermes v0.14.0 (2026.5.16)
- Python 3.11.15
Description
After upgrading to v0.14.0, Hermes crashes with a
NameErrorwhen a 429 rate limit error is encountered from a provider.Error
Root Cause
agent/conversation_loop.pyimportsrun_agentas a module at line 81:But at line 2254,
_pool_may_recover_from_rate_limitis called without the module prefix:This causes a
NameErrorbecause the function is defined inrun_agent.py, not in scope ofconversation_loop.py.Fix
Steps to Reproduce
NameErrorinstead of falling back to the next providerEnvironment