[BUG] Invalid tracking URI may report incorrect workspaces error
[!WARNING] Before submitting a PR, please make sure that:
- A maintainer has triaged this issue and applied the
readylabel- This issue has no assignee
- No duplicate PR exists
PRs not meeting these requirements may be automatically closed.
Issues Policy acknowledgement
- I have read and agree to submit bug reports in accordance with the issues policy
Where did you encounter this bug?
Local machine
MLflow version
- Client:
3.16.1.dev0(04d8cba3b1, MLflowmasterat time of writing) - Tracking server:
3.16.1.dev0(same source checkout)
System information
- OS Platform and Distribution: Fedora Linux, kernel
7.1.10-200.fc44.x86_64 - Python version:
3.14.7
Describe the problem
When an active workspace is configured, the REST client detects server workspace support by requesting:
<MLFLOW_TRACKING_URI>/api/3.0/mlflow/server-infoThe client treats a 404 response as proof that the remote server does not support workspaces. A 404, however, also occurs when MLFLOW_TRACKING_URI uses an invalid path. This produces a misleading error, even when the target MLflow server is running with --enable-workspaces.
Expected behavior: when MLflow cannot distinguish an invalid URI route from an older server that lacks server-info, the error should direct the user to verify MLFLOW_TRACKING_URI rather than state that the server does not support workspaces.
Actual behavior: MLflow reports that workspaces are unsupported.
Tracking information
No response
Code to reproduce issue
Server command:
uv run --frozen mlflow server \
--host 127.0.0.1 \
--port 5506 \
--workers 1 \
--backend-store-uri "sqlite:////tmp/mlflow.db" \
--enable-workspacesThe correct server capability response is:
{"workspaces_enabled":true, ...}The correct client URI is http://127.0.0.1:5506. The failing URI is http://127.0.0.1:5506/not-mlflow.
In a second terminal, first create the workspace with the correct URI:
export MLFLOW_TRACKING_URI=http://127.0.0.1:5506
uv run --frozen python -c '
from mlflow import MlflowClient
MlflowClient().create_workspace("demo")
'Then use an invalid path on the same server:
export MLFLOW_TRACKING_URI=http://127.0.0.1:5506/not-mlflow
export MLFLOW_WORKSPACE=demo
uv run --frozen python -c '
from mlflow import MlflowClient
print(MlflowClient().get_experiment_by_name("demo"))
'The capability endpoint confirms the route failure:
curl -i "${MLFLOW_TRACKING_URI}/api/3.0/mlflow/server-info"
# HTTP/1.1 404 Not FoundStack trace
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/home/jburdo/src/mlflow/mlflow/tracking/client.py", line 2128, in get_experiment_by_name
return self._tracking_client.get_experiment_by_name(name)
File "/home/jburdo/src/mlflow/mlflow/tracking/_tracking_service/client.py", line 282, in get_experiment_by_name
return self.store.get_experiment_by_name(name)
File "/home/jburdo/src/mlflow/mlflow/store/tracking/rest_store.py", line 1472, in get_experiment_by_name
response_proto = self._call_endpoint(GetExperimentByName, req_body)
File "/home/jburdo/src/mlflow/mlflow/store/tracking/rest_store.py", line 260, in _call_endpoint
self._validate_workspace_support_if_specified()
File "/home/jburdo/src/mlflow/mlflow/store/workspace_rest_store_mixin.py", line 53, in _validate_workspace_support_if_specified
raise MlflowException(
mlflow.exceptions.MlflowException: Active workspace 'demo' cannot be used because the remote server does not support workspaces. Restart the server with --enable-workspaces or unset the active workspace.Other info / logs
2026/09/17 15:36:11 INFO: 127.0.0.1:53216 - "GET /not-mlflow/api/3.0/mlflow/server-info HTTP/1.1" 404 Not FoundWillingness to contribute
Yes. I can contribute a fix for this bug independently.
What component(s) does this bug affect?
-
area/tracking: Tracking Service, tracking client APIs, autologging -
area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry -
area/scoring: MLflow model serving, deployment tools, Spark UDFs -
area/evaluation: MLflow model evaluation features, evaluation metrics, and evaluation workflows -
area/prompt: MLflow prompt engineering features, prompt templates, and prompt management -
area/tracing: MLflow Tracing features, tracing APIs, and LLM tracing functionality -
area/gateway: MLflow AI Gateway client APIs, server, and third-party integrations -
area/projects: MLproject format, project running backends -
area/uiux: Front-end, user experience, plotting -
area/docs: MLflow documentation pages
Source: mlflow/mlflow