#25956·mlflow

[BUG] Invalid tracking URI may report incorrect workspaces error

Author: jonburdoCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbugarea/trackingready

[!WARNING] Before submitting a PR, please make sure that:

  • A maintainer has triaged this issue and applied the ready label
  • 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, MLflow master at 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-info

The 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:

bash
uv run --frozen mlflow server \
  --host 127.0.0.1 \
  --port 5506 \
  --workers 1 \
  --backend-store-uri "sqlite:////tmp/mlflow.db" \
  --enable-workspaces

The correct server capability response is:

json
{"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:

bash
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:

bash
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:

bash
curl -i "${MLFLOW_TRACKING_URI}/api/3.0/mlflow/server-info"
# HTTP/1.1 404 Not Found

Stack 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 Found

Willingness 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