nopSolutions/nopCommerce · error · Exception
Azure end point for Blob is not specified
Error message
Azure end point for Blob is not specified
What it means
Thrown by AzureThumbService.Init when AzureBlobSettings.EndPoint is null or empty. It is the third sequential config check; the endpoint is used to build blob URLs (Trim().ToLowerInvariant().TrimEnd('/')).
Source
Thrown at src/Plugins/Nop.Plugin.Misc.AzureBlob/Services/AzureThumbService.cs:63
#region Utilities
/// <summary>
/// Initialize cloud container
/// </summary>
private void Init()
{
if (_isInitialized)
return;
if (string.IsNullOrEmpty(_azureBlobSettings.ConnectionString))
throw new Exception("Azure connection string for Blob is not specified");
if (string.IsNullOrEmpty(_azureBlobSettings.ContainerName))
throw new Exception("Azure container name for Blob is not specified");
if (string.IsNullOrEmpty(_azureBlobSettings.EndPoint))
throw new Exception("Azure end point for Blob is not specified");
lock (_locker)
{
if (_isInitialized)
return;
_azureBlobStorageAppendContainerName = _azureBlobSettings.AppendContainerName;
_azureBlobStorageConnectionString = _azureBlobSettings.ConnectionString;
_azureBlobStorageContainerName = _azureBlobSettings.ContainerName.Trim().ToLowerInvariant();
_azureBlobStorageEndPoint = _azureBlobSettings.EndPoint.Trim().ToLowerInvariant().TrimEnd('/');
_blobServiceClient = new BlobServiceClient(_azureBlobStorageConnectionString);
_blobContainerClient = _blobServiceClient.GetBlobContainerClient(_azureBlobStorageContainerName);
_blobContainerClient.CreateIfNotExistsAsync(PublicAccessType.Blob).Wait();
_isInitialized = true;
}View on GitHub (pinned to 64bdf2ff08)
Solutions
- Provide the blob endpoint/base URL in the plugin configuration (e.g. https://<account>.blob.core.windows.net or your CDN domain) and save.
- Save the setting for the correct store scope.
- Ensure the value is non-empty after trim (not just whitespace).
Example fix
// before: EndPoint = "" // after: settings.EndPoint = "https://mystore.blob.core.windows.net"; await _settingService.SaveSettingAsync(settings, storeScope);
Defensive patterns
Strategy: validation
Validate before calling
if (string.IsNullOrEmpty(_azureBlobSettings.EndPoint))
throw new InvalidOperationException("Configure the Azure Blob endpoint before use."); Type guard
static bool HasEndPoint(AzureBlobSettings s) => !string.IsNullOrWhiteSpace(s.EndPoint);
Try / catch
try { _azureThumbService.GetThumbUrl(...); }
catch (Exception ex) when (ex.Message.Contains("end point for Blob"))
{ logger.Error("Azure Blob endpoint missing.", ex); } Prevention
- Provide the endpoint/CDN base URL in config.
- Trim trailing slashes (the code does, but keep it clean).
- Validate the full AzureBlobSettings object before enabling the plugin.
When it happens
Trigger: The Azure Blob plugin is configured with connection string and container but the custom endpoint (CDN or custom domain) field is blank. Init runs on first media operation.
Common situations: Admin left the endpoint blank; using the default endpoint but the field is required; settings saved to the wrong store scope; migrating configs and dropping the endpoint value.
Related errors
- Azure connection string for Blob is not specified
- Azure container name for Blob is not specified
- Archive '{NopCommonDefaults.LocalePatternArchiveName}' to re
- Plugins.ExchangeRate.EcbExchange.Error
- Facebook authentication module cannot be loaded
AI-assisted analysis of nopSolutions/nopCommerce@64bdf2ff08 (2026-08-13).
Data as JSON: /api/errors/f6d823ff9949ecd8.
Report an issue: GitHub.