Skip to content

Bug: Streaming LLM calls have no retry/failover (providers/reliable.rs) #1931

@Liohtml

Description

@Liohtml

Summary

src/openhuman/providers/reliable.rsstream_chat_with_system() only tries the first provider+model that supports streaming. If that single attempt fails, the error propagates immediately.

In contrast, non-streaming methods (chat_with_system, chat, chat_with_tools) implement full retry + provider failover logic.

Impact

Medium — Streaming calls are significantly less reliable than non-streaming equivalents. A transient API error (rate limit, timeout) that non-streaming would silently retry causes streaming to fail completely.

Suggested Fix

Implement at least one retry with provider/model fallback for streaming, matching the non-streaming behavior. Or degrade gracefully to non-streaming on failure and surface a warning.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions