{"record":{"id":"c3e002668e7031ec","repo":"home-assistant/core","slug":"cannot-connect-c3e002","errorCode":null,"errorMessage":"cannot_connect","messagePattern":"cannot_connect","errorType":"exception","errorClass":"ConfigEntryNotReady","httpStatus":null,"severity":"error","filePath":"homeassistant/components/azure_storage/__init__.py","lineNumber":74,"sourceCode":"    )\n\n    try:\n        if not await container_client.exists():\n            await container_client.create_container()\n    except ResourceNotFoundError as err:\n        raise ConfigEntryError(\n            translation_domain=DOMAIN,\n            translation_key=\"account_not_found\",\n            translation_placeholders={CONF_ACCOUNT_NAME: entry.data[CONF_ACCOUNT_NAME]},\n        ) from err\n    except ClientAuthenticationError as err:\n        raise ConfigEntryAuthFailed(\n            translation_domain=DOMAIN,\n            translation_key=\"invalid_auth\",\n            translation_placeholders={CONF_ACCOUNT_NAME: entry.data[CONF_ACCOUNT_NAME]},\n        ) from err\n    except AzureError as err:\n        raise ConfigEntryNotReady(\n            translation_domain=DOMAIN,\n            translation_key=\"cannot_connect\",\n            translation_placeholders={CONF_ACCOUNT_NAME: entry.data[CONF_ACCOUNT_NAME]},\n        ) from err\n\n    entry.runtime_data = container_client\n\n    def _async_notify_backup_listeners() -> None:\n        for listener in hass.data.get(DATA_BACKUP_AGENT_LISTENERS, []):\n            listener()\n\n    entry.async_on_unload(entry.async_on_state_change(_async_notify_backup_listeners))\n\n    return True\n\n\nasync def async_unload_entry(\n    hass: HomeAssistant, entry: AzureStorageConfigEntry","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/azure_storage/__init__.py#L56-L92","documentation":"Raised as ConfigEntryNotReady (translation key cannot_connect) when Azure Blob Storage setup fails with a generic AzureError that is neither ResourceNotFoundError nor ClientAuthenticationError. It covers transient/service-level failures (network drops, 5xx from the storage service, throttling). HA retries setup with backoff.","triggerScenarios":"container_client.exists() or create_container() raises any other azure.core.exceptions.AzureError subclass, e.g. ServiceResponseError on network failure or HttpResponseError with a 5xx/429 status.","commonSituations":"Temporary network/DNS outage between the HA host and <account>.blob.core.windows.net, storage service throttling (too many requests), Azure regional incident.","solutions":["Wait for the automatic retry; if it persists, verify network connectivity to the storage endpoint","Check the Azure status page for incidents in the storage account's region","If throttling (429), reduce concurrent backup/upload operations or raise limits","If a proxy is required, ensure HTTP_PROXY/HTTPS_PROXY are configured for the HA process"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":"def is_transient_azure_error(err: BaseException) -> bool:\n    from azure.core.exceptions import AzureError, ClientAuthenticationError, ResourceNotFoundError\n    return isinstance(err, AzureError) and not isinstance(err, (ResourceNotFoundError, ClientAuthenticationError))","tryCatchPattern":"try:\n    await container_client.exists()\nexcept (ResourceNotFoundError, ClientAuthenticationError):\n    raise\nexcept AzureError as err:\n    raise ConfigEntryNotReady(...) from err  # retried with backoff","preventionTips":["Order except clauses most-specific first, as the integration does","Rely on ConfigEntryNotReady backoff for transient Azure errors instead of manual loops","Keep the SDK's built-in retry policy enabled"],"tags":["azure","blob-storage","network","transient"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}