Skip to content

[Bug]: MoA reference model failure triggers no fallback — session hangs and delivers no response #56878

Description

@xia950704

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

  1. 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
  2. If ALL references fail, MoA should gracefully degrade to single-model mode and complete the request
  3. 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/agentCore agent runtime: loop, agent_init, prompt builder, context-compression, responses endpointtype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions