Skip to content

[Feature] Allow "auto/*" combos as fallbacks for custom combos #2686

Description

@yodog

Problem / Use Case

Currently, Omniroute does not support using the built-in dynamic system routing shortcuts (specifically the auto/* combos) as fallback targets.

This limitation prevents setting up flexible, automated fallback strategies. For example, if a high-tier custom combo exhausts its quota or balance, we cannot gracefully degrade the requests to a cost-effective dynamic system tier like auto/free.

Proposed Solution

Allow the selection of auto/* strings when building a combo.

When the primary custom combo fails or hits its limits, Omniroute should seamlessly hand off the request to the specified dynamic system route, triggering the standard provider/model selection logic associated with that auto/* tier.

Alternatives Considered

Building a custom fallback combo copying the content of the desired "auto" combo

Acceptance Criteria

  • A custom combo can be successfully saved/configured with an auto/* route (e.g., auto/free, auto/fast).
  • When the custom combo triggers a fallback scenario (e.g., rate limit, quota exhaustion, or provider downtime), the request is successfully routed to the fallback system tier.
  • The dynamic selection logic of the auto/* combo executes correctly when triggered as a fallback.
  • If the fallback auto/* route also fails, standard error handling or subsequent fallbacks in the list are executed normally.

Area

Proxy / Routing

Related Provider(s)

No response

Additional Context

No specific environmental blockades. This is a purely architectural enhancement to bridge the gap between custom user-defined combos and internal dynamic routing shortcuts

Expected Test Plan

Add a test case simulating custom combo exhaustion where the fallback target is "auto/free". Assert that the request is redirected and processed by one of the free tier providers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions