Skip to content

/health endpoint returns status 200 when model is not yet loaded #537

Description

@cphlipot

Before you start

  • I have read the FAQ and my problem is not answered there.
  • I have read the Roadmap and this is not already planned there.
  • I have searched existing issues and found no duplicate.
  • I am on the latest release, or on a freshly rebuilt main when building from source.

What happened

With most other inference engines ( llama.cpp, tabbyapi, ninfer, ds4, colibri, ik_llama.cpp, and vllm) a GET request to /health will return an error status such as 404 or 503 if the model is not yet loaded and 200 only when ready, which is a behavior other tools such as llama-swap rely on a non-successful error code to deterimine the health of the engine.

FreeToken deviates from every other implementation i could find by always returning status 200 from /health even when the model is not ready, which makes it look like a bug.

Behavior can easily be seen via running curl while model is loading:

 curl -i http://127.0.0.1:1919/health
HTTP/1.1 200 OK
date: Tue, 22 Sep 2026 16:45:43 GMT
server: uvicorn
content-length: 190
content-type: application/json

{"status":"loading","phase":"weights","progress":{"done_bytes":10032828408,"total_bytes":10816852472},"model":"Qwen3.8-Flash-Next-NVFP4","instance_id":"c66344f3-b496-4dcb-a359-90c502ecb3f9"}

note: status is "loading" but status is "200 OK", where instead something like 503 would be expected instead.

I believe we should set the error code in the /health response until model is actually loaded.

How did you install FreeToken

Built from source

FreeToken version

cab110e

OS

Fedora

OS details

44

GPU and driver

RTX 5090 615.71.09

CPU and system RAM

i7-12600k DDR4

Checkpoint

nvidia/Qwen3.8-Flash-Next-NVFP4

Command

ft serve --model models/Qwen3.8-Flash-Next-NVFP4

Full log


Anything else

No response

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

    Labels

    bugSomething isn't workinglinux

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions