Skip to content

bug: intelligent_route selects stale candidate over fresh with static config #856

Description

@Ladas

When intelligent_route is configured with two static candidates for the same model — one fresh: true (inference cluster) and one fresh: false (echo fallback) — the filter consistently selects the stale echo candidate instead of the fresh inference candidate.

Config

- filter: intelligent_route
  local_site: site-a
  model_header: X-Model
  candidates:
    - kind: inference_model
      name: test-model
      site: site-a
      cluster: inference
      fresh: true
    - kind: inference_model
      name: test-model
      site: site-a
      cluster: echo
      fresh: false

Observed

Access logs show cluster="echo" upstream="echo-backend" for every POST /v1/chat/completions request with model: test-model. The model_to_header filter runs before and promotes the model name to X-Model.

Expected

The fresh inference candidate should score higher and be selected.

Context

Found while building the OTel benchmark demo (praxis-proxy/experimental#13). The workaround is using router instead. The bug may be a config schema mismatch with the current filter version or a scoring logic issue with static (non-overlay) candidates.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions