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
- Upgrade the MLflow client to the latest version: pip install -U mlflow
- Verify the Unity Catalog OSS server is recent and returns credential_type in model version temporary credentials
- 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
- Keep client and UC OSS server versions aligned
- Confirm the server returns temporary credentials with a credential_type before downloads
- Avoid proxying UC endpoints in ways that strip credential fields
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
- Got unexpected credential type {credential_type} when attemp
- INVALID_PARAMETER_VALUE
- Remote model registry access via model URIs of the form 'mod
- This repository does not support logging artifacts.
- This artifact repository does not support deleting artifacts
AI-assisted analysis of mlflow/mlflow@6a27f2decc (2026-08-29).
Data as JSON: /api/errors/95370850fa366c75.
Report an issue: GitHub.