{"record":{"id":"95370850fa366c75","repo":"mlflow/mlflow","slug":"got-no-credential-type-when-attempting-to-access-m","errorCode":null,"errorMessage":"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.","messagePattern":"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\\.","errorType":"exception","errorClass":"MlflowException","httpStatus":null,"severity":"error","filePath":"mlflow/utils/_unity_catalog_utils.py","lineNumber":377,"sourceCode":"            }\n\n        return AzureDataLakeArtifactRepository(\n            artifact_uri=storage_location,\n            credential=AzureSasCredential(sas_token),\n            credential_refresh_def=azure_credential_refresh,\n        )\n\n    elif len(scoped_token.gcp_oauth_token.oauth_token) > 0:\n        from google.cloud.storage import Client\n        from google.oauth2.credentials import Credentials\n\n        from mlflow.store.artifact.gcs_artifact_repo import GCSArtifactRepository\n\n        credentials = Credentials(scoped_token.gcp_oauth_token.oauth_token)\n        client = Client(project=\"mlflow\", credentials=credentials)\n        return GCSArtifactRepository(artifact_uri=storage_location, client=client)\n    else:\n        raise MlflowException(\n            \"Got no credential type when attempting to \"\n            \"access model version files in Unity Catalog. Try upgrading to the latest \"\n            \"version of the MLflow Python client.\"\n        )\n\n\ndef _parse_aws_sse_credential(scoped_token: TemporaryCredentials):\n    encryption_details = scoped_token.encryption_details\n    if not encryption_details:\n        return {}\n\n    if encryption_details.WhichOneof(\"encryption_details_type\") != \"sse_encryption_details\":\n        return {}\n\n    sse_encryption_details = encryption_details.sse_encryption_details\n\n    if sse_encryption_details.algorithm == SseEncryptionAlgorithm.AWS_SSE_S3:\n        return {","sourceCodeStart":359,"sourceCodeEnd":395,"githubUrl":"https://github.com/mlflow/mlflow/blob/6a27f2decc0b76eb1b54af31849784addb357dbc/mlflow/utils/_unity_catalog_utils.py#L359-L395","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\npip install mlflow==2.9.0  # no credential_type in response handling\n// after\npip install -U mlflow","handlingStrategy":"try-catch","validationCode":"creds = model_version.get(\"credentials\") or {}\nif not creds.get(\"credential_type\"):\n    raise SystemExit(\"Server returned no credential_type; upgrade mlflow or fix UC OSS server\")","typeGuard":null,"tryCatchPattern":"try:\n    repo = get_artifact_repo_from_storage_info(storage_info)\nexcept MlflowException as e:\n    if \"Got no credential type\" in str(e):\n        repo = fallback_artifact_repo_for(storage_info.storage_location)\n    else:\n        raise","preventionTips":["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"],"tags":["unity-catalog","oss","credentials","version-mismatch"],"backgroundTag":"unsupported-credential-type","analyzedSha":"6a27f2decc0b76eb1b54af31849784addb357dbc","analyzedAt":"2026-08-29T20:54:51.419Z","schemaVersion":2},"datasetVersion":"2026-08-29T22:17:34.462Z"}