Bug Description
When a MoA reference model fails (HTTP 400 empty response / timeout), the MoA aggregator waits for the missing reference response indefinitely and eventually times out with a non-retryable client error. The user receives no response at all.
There is no fallback logic to degrade to single-model mode or skip the failed reference.
Logs (Hermes 0.18.0, SenseNova provider)
14:49:54 WARNING agent.moa_loop: MoA reference model custom:token.sensenova.cn:sensenova-6.7-flash-lite failed: Error code: 400 - {"error": {"message": "Empty response received", "type": "invalid_request_error", "code": "internal_server_error"}}
After this, the aggregator hangs for ~6 minutes:
14:55:36 WARNING [session] agent.conversation_loop: API call failed (attempt 1/3) error_type=BadRequestError provider=moa model=thinking summary=HTTP 400: Errors in message queue response: Response timeout
14:55:36 ERROR [session] agent.conversation_loop: Non-retryable client error: Error code: 400 - {"error": {"message": "Errors in message queue response: Response timeout"}}
Expected Behavior
- If a MoA reference model returns an error or times out, the MoA loop should skip that reference and proceed with the remaining healthy references
- If ALL references fail, MoA should gracefully degrade to single-model mode and complete the request
- User should receive a response (or at minimum an error message explaining what happened)
Impact
This is a hard failure — the conversation turn is completely lost. The user has no idea the request failed and has to manually switch models and retry. Combined with high concurrency (multiple sessions sharing one API key), the problem is amplified because MoA spawns 2+ parallel reference calls.
Workaround
Avoid using MoA/thinking mode when multiple sessions are active on the same API key, or switch to single-model mode.
Environment
- Hermes v0.18.0 (2026.7.1)
- Provider: custom (SenseNova token.sensenova.cn)
- Models: deepseek-v4-flash (main), sensenova-6.7-flash-lite (reference/aggregator)
- Platform: CLI (Desktop GUI)
Bug Description
When a MoA reference model fails (HTTP 400 empty response / timeout), the MoA aggregator waits for the missing reference response indefinitely and eventually times out with a non-retryable client error. The user receives no response at all.
There is no fallback logic to degrade to single-model mode or skip the failed reference.
Logs (Hermes 0.18.0, SenseNova provider)
After this, the aggregator hangs for ~6 minutes:
Expected Behavior
Impact
This is a hard failure — the conversation turn is completely lost. The user has no idea the request failed and has to manually switch models and retry. Combined with high concurrency (multiple sessions sharing one API key), the problem is amplified because MoA spawns 2+ parallel reference calls.
Workaround
Avoid using MoA/thinking mode when multiple sessions are active on the same API key, or switch to single-model mode.
Environment