{"record":{"id":"40fac582b563edda","repo":"microsoft/graphrag","slug":"storageconfig-type-storage-strategy-is-not-reg","errorCode":null,"errorMessage":"StorageConfig.type '{storage_strategy}' is not registered in the StorageFactory. Registered types: {', '.join(storage_factory.keys())}.","messagePattern":"StorageConfig\\.type '(.+?)' is not registered in the StorageFactory\\. Registered types: (.+?)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"packages/graphrag-storage/graphrag_storage/storage_factory.py","lineNumber":76,"sourceCode":"            case StorageType.File:\n                from graphrag_storage.file_storage import FileStorage\n\n                register_storage(StorageType.File, FileStorage)\n            case StorageType.Memory:\n                from graphrag_storage.memory_storage import MemoryStorage\n\n                register_storage(StorageType.Memory, MemoryStorage)\n            case StorageType.AzureBlob:\n                from graphrag_storage.azure_blob_storage import AzureBlobStorage\n\n                register_storage(StorageType.AzureBlob, AzureBlobStorage)\n            case StorageType.AzureCosmos:\n                from graphrag_storage.azure_cosmos_storage import AzureCosmosStorage\n\n                register_storage(StorageType.AzureCosmos, AzureCosmosStorage)\n            case _:\n                msg = f\"StorageConfig.type '{storage_strategy}' is not registered in the StorageFactory. Registered types: {', '.join(storage_factory.keys())}.\"\n                raise ValueError(msg)\n\n    return storage_factory.create(storage_strategy, config_model)\n","sourceCodeStart":58,"sourceCodeEnd":79,"githubUrl":"https://github.com/microsoft/graphrag/blob/f40e9a26ce62ba0b3fef8837d24aafdcc6e6c704/packages/graphrag-storage/graphrag_storage/storage_factory.py#L58-L79","documentation":"StorageFactory.register() lazily imports and registers storage backends per StorageType; the default branch fires when the requested type string matches no registered type and no lazy case. The message lists all currently registered types so you can see what the factory actually knows about.","triggerScenarios":"Calling create_storage with a misspelled or unsupported type (e.g. \"azure_cosmos\" when the enum key differs, or \"redis\"), or a custom type that was never registered via register_storage before create_storage ran.","commonSituations":"Typos in settings.yaml type field; upgrading GraphRAG where StorageType members were renamed; third-party backend not imported/registered before factory use.","solutions":["Check the error's registered-types list and correct the type string to an exact match (use the StorageType enum, not a hand-typed string)","For custom backends, call register_storage(YourType, YourClass) before create_storage","If a builtin type is missing from the list, your graphrag-storage version may be old — upgrade"],"exampleFix":"# before\nconfig.type = \"azure_cosmos\"\n# after\nfrom graphrag_storage import StorageType\nconfig.type = StorageType.AzureCosmos.value","handlingStrategy":"validation","validationCode":"from graphrag_storage import storage_factory\ntypes = {t.value for t in StorageType}\nassert cfg[\"type\"] in storage_factory.keys() or cfg[\"type\"] in types","typeGuard":"def is_known_storage_type(t: str, registered: dict) -> bool:\n    return t in registered or t in {e.value for e in StorageType}","tryCatchPattern":null,"preventionTips":["Reference enum values instead of string literals in config","Register custom backends at app bootstrap"],"tags":["factory","config","storage","registry"],"backgroundTag":"unsupported-provider-type","analyzedSha":"f40e9a26ce62ba0b3fef8837d24aafdcc6e6c704","analyzedAt":"2026-08-27T11:16:29.677Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}