Skip to content

upstream provider timeout -> no failover, Plexus returns HTTP 200 #522

@stargazer33

Description

@stargazer33

Steps:

1: From my client to Plexus:

curl -v  "http://localhost:4000/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ..." \
-d '{
  "model": "deepseek-v4-flash",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant that provides concise answers."
    },
    {
      "role": "user",
      "content": "Say Hello"
    }
  ],
  "stream": false,
  "temperature": 0,
  "max_tokens": 1024
}'

2: Plexus configuration

I am attaching screenshots, config files follows:

/ui/config
Image

/ui/models
Image

With this configuration - I expect it to failover to opencode-go-1 when nvidia-nim timeout

3: Timeout in Plexus, no failover

/ui/logs
Image

Transformed request (from /ui/debug):

{
  "model": "deepseek-ai/deepseek-v4-flash",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant that provides concise answers."
    },
    {
      "role": "user",
      "content": "Say Hello"
    }
  ],
  "stream": false,
  "temperature": 0,
  "max_tokens": 1024,
  "reasoning_effort": "none"
}

Raw response: <empty>

And, Plexus printed this into stdout:

May 22 12:50:10 p51 plexus[108369]: 2026-05-22 12:50:10 [info   ]: Dispatcher: Selected API type 'chat' for model 'deepseek-ai/deepseek-v4-flash'. Reason: matched incoming request type 'chat'
May 22 12:50:10 p51 plexus[108369]: 2026-05-22 12:50:10 [info   ]: Dispatching deepseek-v4-flash to nvidia-nim:deepseek-ai/deepseek-v4-flash chat <-> chat
May 22 12:50:50 p51 plexus[108369]: 2026-05-22 12:50:50 [info   ]: Request 0076f2f6-01d4-4cf7-bb5b-0b091533d4ef: Upstream timeout, usage recorded as timeout

4: my client gets from Plexus HTTP 200

Curl command (from step 1) output this

...
< HTTP/1.1 200 OK

PROBLEMS:
1 - no failover to opencode-go-1 happens!
2 - timeout and HTTP 200 are two different things - I would expect either failover or SOME error code from Plexus, not HTTP 200 !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions