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

  1. Set the connection string via BlobWorkflowLogger(connection_string=...) or the corresponding env/settings field
  2. Alternatively pass account_url (e.g. https://<account>.blob.core.windows.net) so DefaultAzureCredential auth is used
  3. If you don't need blob logging, disable/switch the workflow logger instead of configuring it
  4. 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

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


AI-assisted analysis of microsoft/graphrag@f40e9a26ce (2026-08-27). Data as JSON: /api/errors/cc1dfdade54ec9f6. Report an issue: GitHub.