{"record":{"id":"eb43df68f44a580c","repo":"BerriAI/litellm","slug":"unsupported-storage-backend-type-backend-type","errorCode":null,"errorMessage":"Unsupported storage backend type: {backend_type}. Supported types: azure_storage","messagePattern":"Unsupported storage backend type: (.+?)\\. Supported types: azure_storage","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/base_llm/files/storage_backend_factory.py","lineNumber":37,"sourceCode":"    Backends are configured using the same environment variables as their\n    corresponding callbacks. For example, \"azure_storage\" uses the same\n    env vars as AzureBlobStorageLogger.\n\n    Args:\n        backend_type: Backend type identifier (e.g., \"azure_storage\")\n\n    Returns:\n        BaseFileStorageBackend: Instance of the appropriate storage backend\n\n    Raises:\n        ValueError: If backend_type is not supported\n    \"\"\"\n    verbose_logger.debug(\"Creating storage backend: type=%s\", backend_type)\n\n    if backend_type == \"azure_storage\":\n        return AzureBlobStorageBackend()\n    else:\n        raise ValueError(f\"Unsupported storage backend type: {backend_type}. Supported types: azure_storage\")\n","sourceCodeStart":19,"sourceCodeEnd":38,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/base_llm/files/storage_backend_factory.py#L19-L38","documentation":"Raised by the storage backend factory when the requested backend_type string is anything other than 'azure_storage'. The factory is intentionally minimal: it maps 'azure_storage' -> AzureBlobStorageBackend() and rejects everything else, so any typo or unsupported backend name (s3, gcs, local) fails immediately.","triggerScenarios":"Passing backend_type='s3', 'S3', 'azure-blob', 'Azure_Storage' or any other string to the factory (via proxy file-management config or direct call); version drift where config written for a newer litellm mentions backends this version does not ship.","commonSituations":"Config copied from docs of a different litellm version; assuming S3/GCS support exists because constants exist elsewhere; case-sensitive string mismatches between config value and factory check.","solutions":["Set backend_type exactly to 'azure_storage'.","Check your litellm version (pip show litellm) — if you need another backend, upgrade to a version whose factory supports it.","For non-Azure storage, upload files via a pre-signed URL flow or your own storage layer instead of this factory.","If adding a custom backend, register it in the factory (add an elif branch returning your BaseFileStorageBackend subclass)."],"exampleFix":"# before\nbackend = create_storage_backend(backend_type='s3')  # ValueError\n\n# after\nbackend = create_storage_backend(backend_type='azure_storage')","handlingStrategy":"validation","validationCode":"SUPPORTED_BACKENDS = {'azure_storage'}\n\nif backend_type not in SUPPORTED_BACKENDS:\n    raise ConfigError(f'{backend_type!r} unsupported; choose from {SUPPORTED_BACKENDS}')","typeGuard":"def is_supported_backend(value: str) -> bool:\n    \"\"\"Type guard for storage backend factory inputs.\"\"\"\n    return value in {'azure_storage'}","tryCatchPattern":null,"preventionTips":["Pin the litellm version your config was written for and check its factory source for supported types.","Fail fast on unknown config keys at app boot rather than at first file operation.","Watch release notes when new backends are added before adopting them."],"tags":["storage","factory","configuration","unsupported-backend"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}