apache / apache/tooling-llmao

A host that changes address leaves an orphaned LiteLLM route

Open
#29 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
1
Forks
1
PR merge metrics
No merged PRs in 30d

Description

/fleet reports missing from LiteLLM for a server that is serving normally.

What happened

qwen3.8-27b was redeployed to raise its context window. RunPod gives a new IP and port on every pod recreate, so the host moved from 216.243.220.245:16643 to 103.196.86.105:17140. The fleet_hosts entry was updated, the box came up healthy, and /fleet shows serving.

But LiteLLM still holds the route for the old address. Nothing removed it, and nothing pushed a replacement — the model is unreachable through the proxy while looking healthy in the UI.

Why

Routes are created on the transition into SERVING and deleted on the transition into DOWN. Neither fires here: from the fleet's point of view this is a new server that was never DOWN, and the old one vanished from config rather than failing a health check.

So the deregistration path has a hole — a server removed from fleet_hosts never gets a down transition, and its route outlives it.

What should catch it

check_config_skew already computes bases - fleet_bases — LiteLLM holding routes the fleet does not know about. That branch is precisely this case.

It was previously vacuous, because no route carried an api_base at all. Now that routes exist it should fire, and the fix is to act on it rather than only report it: a route whose api_base is not in the current fleet should be deleted.

Worth pairing with reconciliation on startup, so a portal restart converges the proxy to the fleet rather than relying on transitions alone. That also covers the case where llmao restarts while a box is mid-flight.

Workaround

Restart the portal; it reconciles from scratch.

Note

This will be routine rather than exceptional. RunPod reassigns addresses on every recreate, and we have already moved this host twice tonight. Any config change needing a relaunch produces the same orphan.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at check_config_skew, which already compares current fleet bases with LiteLLM routes, and trace the startup reconciliation path mentioned in the issue. Verify the behavior with a removed or changed host address; done means stale routes are removed and startup reconciliation converges LiteLLM with the current fleet.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.