mlflow/mlflow · error · MlflowException

Got no credential type when attempting to access model versi

Error message

Got no credential type when attempting to access model version files in Unity Catalog. Try upgrading to the latest version of the MLflow Python client.

What it means

The OSS variant of the UC artifact repo dispatcher expects the scoped token to carry a credential type; when none is present (credential_type is None/absent), it raises this MlflowException advising a client upgrade, because the server response shape is not understood.

Source

Thrown at mlflow/utils/_unity_catalog_utils.py:377

            }

        return AzureDataLakeArtifactRepository(
            artifact_uri=storage_location,
            credential=AzureSasCredential(sas_token),
            credential_refresh_def=azure_credential_refresh,
        )

    elif len(scoped_token.gcp_oauth_token.oauth_token) > 0:
        from google.cloud.storage import Client
        from google.oauth2.credentials import Credentials

        from mlflow.store.artifact.gcs_artifact_repo import GCSArtifactRepository

        credentials = Credentials(scoped_token.gcp_oauth_token.oauth_token)
        client = Client(project="mlflow", credentials=credentials)
        return GCSArtifactRepository(artifact_uri=storage_location, client=client)
    else:
        raise MlflowException(
            "Got no credential type when attempting to "
            "access model version files in Unity Catalog. Try upgrading to the latest "
            "version of the MLflow Python client."
        )


def _parse_aws_sse_credential(scoped_token: TemporaryCredentials):
    encryption_details = scoped_token.encryption_details
    if not encryption_details:
        return {}

    if encryption_details.WhichOneof("encryption_details_type") != "sse_encryption_details":
        return {}

    sse_encryption_details = encryption_details.sse_encryption_details

    if sse_encryption_details.algorithm == SseEncryptionAlgorithm.AWS_SSE_S3:
        return {

View on GitHub (pinned to 6a27f2decc)

Solutions

  1. Upgrade the MLflow client to the latest version: pip install -U mlflow
  2. Verify the Unity Catalog OSS server is recent and returns credential_type in model version temporary credentials
  3. Inspect the API response (GET /api/2.1/unity-catalog/model-versions/...) to confirm credentials are present; fix server auth config if empty

Example fix

// before
pip install mlflow==2.9.0  # no credential_type in response handling
// after
pip install -U mlflow
Defensive patterns

Strategy: try-catch

Validate before calling

creds = model_version.get("credentials") or {}
if not creds.get("credential_type"):
    raise SystemExit("Server returned no credential_type; upgrade mlflow or fix UC OSS server")

Try / catch

try:
    repo = get_artifact_repo_from_storage_info(storage_info)
except MlflowException as e:
    if "Got no credential type" in str(e):
        repo = fallback_artifact_repo_for(storage_info.storage_location)
    else:
        raise

Prevention

When it happens

Trigger: Calling get_artifact_repo_from_storage_info against a Unity Catalog OSS server where the credential response lacks a credential_type — typically because the OSS server version or the client/server contract mismatch leaves no recognized type in the response.

Common situations: Older mlflow client against newer OSS Unity Catalog server (or vice versa); misconfigured OSS deployment not returning model version credentials; custom/proxied endpoints stripping credential fields.

Related errors


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