mlflow/mlflow · error · MlflowException

Argument '{arg_name}' is unsupported for models in the Unity

Error message

Argument '{arg_name}' is unsupported for models in the Unity Catalog.

What it means

The Unity Catalog model registry does not support certain model registry API arguments (e.g. registry-level tags or stage-based arguments). _raise_unsupported_arg is invoked via _require_arg_unspecified when a caller passes an argument that the UC registry cannot honor. An optional extra message is appended explaining alternatives.

Source

Thrown at mlflow/store/_unity_catalog/registry/rest_store.py:223

    catalog_name: str
    schema_name: str
    remaining_filter: str | None


def _require_arg_unspecified(arg_name, arg_value, default_values=None, message=None):
    default_values = [None] if default_values is None else default_values
    if arg_value not in default_values:
        _raise_unsupported_arg(arg_name, message)


def _raise_unsupported_arg(arg_name, message=None):
    messages = [
        f"Argument '{arg_name}' is unsupported for models in the Unity Catalog.",
    ]
    if message is not None:
        messages.append(message)
    raise MlflowException(" ".join(messages))


def _raise_unsupported_method(method, message=None):
    messages = [
        f"Method '{method}' is unsupported for models in the Unity Catalog.",
    ]
    if message is not None:
        messages.append(message)
    raise MlflowException(" ".join(messages))


def _load_model(local_model_dir):
    # Import Model here instead of in the top level, to avoid circular import; the
    # mlflow.models.model module imports from MLflow tracking, which triggers an import of
    # this file during store registry initialization
    from mlflow.models.model import Model

    try:

View on GitHub (pinned to 6a27f2decc)

Solutions

  1. Remove the unsupported argument from the call and use UC-native equivalents (aliases instead of stages)
  2. Read the appended extra message in the error for the suggested UC alternative
  3. Split client code paths so workspace registry calls and UC registry calls use different argument sets

Example fix

// before
client.transition_model_version_stage(name="m", version="1", stage="Production")
// after
client.set_registered_model_alias(name="m", alias="Production", version="1")
Defensive patterns

Strategy: validation

Validate before calling

UNSUPPORTED_UC_ARGS = {"stage", "tags"}

def check_uc_args(**kwargs):
    bad = UNSUPPORTED_UC_ARGS & set(kwargs)
    if bad:
        raise ValueError(f"Arguments {bad} unsupported for Unity Catalog registry")

Try / catch

try:
    client.create_model_version(name, source, **extra_args)
except MlflowException as e:
    if "is unsupported for models in the Unity Catalog" in str(e):
        client.create_model_version(name, source)
    else:
        raise

Prevention

When it happens

Trigger: Calling UC registry operations like create_model_version, search_model_versions, or transition calls while passing unsupported arguments (e.g. stage, tags) to a UnityCatalogRegistryRestStore.

Common situations: Reusing workspace-registry client code against a UC registry URI (databricks-uc); copying old scripts that set stage-based arguments; libraries that always populate optional registry arguments.

Related errors


AI-assisted analysis of mlflow/mlflow@6a27f2decc (2026-08-29). Data as JSON: /api/errors/e86a6a8c4d704ed4. Report an issue: GitHub.