Skip to content

[BUG] Web interface won't load with starlette<=0.42.0 #6442

@JeroenDelcour

Description

@JeroenDelcour

Describe the problem

Launching the web interface from code opens a web page, but the page is empty except for the text "Not Found". The terminal shows this error:

{"t":{"$date":"2025-10-20T09:38:04.210Z"},"s":"I",  "c":"CONTROL",  "id":20697,   "ctx":"main","msg":"Renamed existing log file","attr":{"oldLogPath":"/home/jeroen/.fiftyone/var/lib/mongo/log/mongo.log","newLogPath":"/home/jeroen/.fiftyone/var/lib/mongo/log/mongo.log.2025-10-20T09-38-04"}}
Subprocess ['/home/jeroen/.pyenv/versions/tmp2/lib/python3.10/site-packages/fiftyone/db/bin/mongod', '--dbpath', '/home/jeroen/.fiftyone/var/lib/mongo', '--logpath', '/home/jeroen/.fiftyone/var/lib/mongo/log/mongo.log', '--port', '0', '--nounixsocket'] exited with error -6:

I tried running rm -rf ~/.fiftyone/, after which the error is no longer shown in terminal, but the web page still doesn't load.

I ran into this after installing supervisely-6.73.457. There's no requirements conflicts according to pip, but after looking around in the dependency trees for likely culprits, it seems the required version of starlette causes the problem.

Fiftyone requirements specify starlette>=0.24.0, but any version of fiftyone>=1.0.0 (at least up to 1.8.1) actually needs starlette>=0.42.0 to load the web interface. However, older versions of starlette do work if I downgrade to fiftyone==0.25.2.

It seems to also depend on the Python version. The issue shows up on Python 3.10 and 3.11, but I can't reproduce it in Python 3.12.

Side-note: two of my colleagues somehow have working Python 3.10 environments with fiftyone==1.7.2 and starlette==0.35.1, so I'm not 100% sure starlette is the root cause. Unfortunately I'm unable to reproduce their exact environment on my machine because it has unresovable dependencies (the result of installing lots of stuff over time, it's an env for messing around).

Code to reproduce issue

Just the example code from the docs:

import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
session = fo.launch_app(dataset)
session.wait()

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 22.04): Ubuntu 24.04.3 LTS
  • Python version (python --version): 3.10.16
  • FiftyOne version (fiftyone --version): 1.8.1
  • FiftyOne installed from (pip or source): pip

Other info/logs

Willingness to contribute

  • Yes. I can contribute a fix for this bug independently
  • Yes. I would be willing to contribute a fix for this bug with guidance
    from the FiftyOne community
  • No. I cannot contribute a bug fix at this time

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug fixes

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions