microsoft/graphrag · error · ValueError
No storage account blob url provided for blob storage.
Error message
No storage account blob url provided for blob storage.
What it means
GraphRAG's BlobWorkflowLogger requires either an Azure Storage connection string or an account blob URL to construct a blob service client. If both connection_string and account_url are None, the constructor cannot connect to Azure Blob Storage and raises this ValueError immediately. It is a configuration/validation error thrown before any network call.
Source
Thrown at packages/graphrag/graphrag/logger/blob_workflow_logger.py:39
def __init__(
self,
connection_string: str | None,
container_name: str | None,
blob_name: str = "",
base_dir: str | None = None,
account_url: str | None = None,
level: int = logging.NOTSET,
):
"""Create a new instance of the BlobWorkflowLogger class."""
super().__init__(level)
if container_name is None:
msg = "No container name provided for blob storage."
raise ValueError(msg)
if connection_string is None and account_url is None:
msg = "No storage account blob url provided for blob storage."
raise ValueError(msg)
self._connection_string = connection_string
self.account_url = account_url
self._base_dir = base_dir
if self._connection_string:
self._blob_service_client = BlobServiceClient.from_connection_string(
self._connection_string
)
else:
if account_url is None:
msg = "Either connection_string or account_url must be provided."
raise ValueError(msg)
self._blob_service_client = BlobServiceClient(
account_url,
credential=DefaultAzureCredential(),
)View on GitHub (pinned to f40e9a26ce)
Solutions
- Set the connection string via BlobWorkflowLogger(connection_string=...) or the corresponding env/settings field
- Alternatively pass account_url (e.g. https://<account>.blob.core.windows.net) so DefaultAzureCredential auth is used
- If you don't need blob logging, disable/switch the workflow logger instead of configuring it
- Verify .env is loaded and variable names match what the config loader expects
Example fix
# before
logger = BlobWorkflowLogger(container_name='logs')
# after
logger = BlobWorkflowLogger(
container_name='logs',
connection_string=os.environ['AZURE_STORAGE_CONNECTION_STRING'],
) Defensive patterns
Strategy: validation
Validate before calling
conn = os.environ.get('GRAPHRAG_CACHE_CONNECTION_STRING')
url = os.environ.get('AZURE_STORAGE_BLOB_URL')
if not conn and not url:
raise SystemExit('Configure blob storage credentials or disable blob logging') Prevention
- Centralize storage config validation at app startup
- Fail fast in CI when blob logging is enabled without credentials
When it happens
Trigger: Instantiating BlobWorkflowLogger(container_name='x') without passing connection_string or account_url; passing both as None explicitly; loading config from settings/env where the storage keys are missing or empty.
Common situations: Running GraphRAG workflows with GRAPHRAG_CACHE_CONNECTION_STRING or blob connection settings unset; typos in the env var names in .env; migrating config where the blob logger args were renamed; local runs that accidentally enable blob logging without credentials.
Related errors
- Either connection_string or account_url must be provided.
- AzureBlobStorage requires only one of connection_string or a
- AzureBlobStorage requires either a connection_string or acco
- Blob storage does yet not support listing keys.
- Container name must be between 3 and 63 characters long and
AI-assisted analysis of microsoft/graphrag@f40e9a26ce (2026-08-27).
Data as JSON: /api/errors/cc1dfdade54ec9f6.
Report an issue: GitHub.