microsoft/aspire · error · InvalidOperationException

A DataLakeServiceClient could not be configured. Ensure…

Error message

A DataLakeServiceClient could not be configured. Ensure valid connection information was provided in 'ConnectionStrings:{connectionName}' or specify a 'ConnectionString' or 'ServiceUri' in the '{configurationSectionName}' configuration section.

What it means

Same validation family as the DataLakeServiceClient error: the DataLakeFileSystemComponent builds an underlying DataLakeServiceClient after checking FileSystemName, and throws when neither ConnectionString nor ServiceUri is configured, since the parent client cannot be created without connection info.

Solutions

  1. Add "ConnectionStrings": { "<connectionName>": "https://<account>.dfs.core.windows.net/" }
  2. Set "ServiceUri" in the Aspire:Azure:Storage:Files:DataLake section
  3. Add .WithReference(adls) in the AppHost so connection info is injected
  4. Confirm the connectionName argument matches the ConnectionStrings key

Example fix

// before
"Aspire:Azure:Storage:Files:DataLake": { "FileSystemName": "myfs" } // no connection info
// after
"ConnectionStrings": { "datalake": "https://acct.dfs.core.windows.net/" },
"Aspire:Azure:Storage:Files:DataLake": { "FileSystemName": "myfs" }
Defensive patterns

Strategy: validation

Validate before calling

if (builder.Configuration.GetConnectionString(connectionName) is null &&
    builder.Configuration["Aspire:Azure:Storage:Files:DataLake:ServiceUri"] is null)
    throw new InvalidOperationException("Provide connection info before adding the Data Lake file system client.");

Prevention

When it happens

Trigger: Calling AddAzureDataLakeFileSystemClient with FileSystemName set but no 'ConnectionStrings:<connectionName>' entry and no ConnectionString/ServiceUri in 'Aspire:Azure:Storage:Files:DataLake'.

Common situations: File system name configured but connection info absent; missing WithReference wiring so no connection string injected; connection string renamed or removed.

Understand the failure class

Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.

Related errors


AI-assisted analysis of microsoft/aspire@25830f84bd (2026-09-16). Data as JSON: /api/errors/132a5eefe998d0ac. Report an issue: GitHub.

Appendix: source

Thrown at src/Components/Aspire.Azure.Storage.Files.DataLake/AspireDataLakeExtensions.DataLakeFileSystemComponent.cs:38

        protected override IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions> AddClient(
            AzureClientFactoryBuilder azureFactoryBuilder,
            AzureDataLakeFileSystemSettings settings,
            string connectionName,
            string configurationSectionName)
            => ((IAzureClientFactoryBuilderWithCredential)azureFactoryBuilder)
                .RegisterClientFactory<DataLakeFileSystemClient, DataLakeClientOptions>(
                    (options, cred) =>
                    {
                        if (string.IsNullOrEmpty(settings.FileSystemName))
                        {
                            throw new InvalidOperationException(
                                $"The connection string '{connectionName}' does not exist or is missing the file system name.");
                        }

                        var connectionString = settings.ConnectionString;
                        if (string.IsNullOrEmpty(connectionString) && settings.ServiceUri is null)
                        {
                            throw new InvalidOperationException(
                                $"A DataLakeServiceClient could not be configured. Ensure valid connection information was provided in 'ConnectionStrings:{connectionName}' or specify a 'ConnectionString' or 'ServiceUri' in the '{configurationSectionName}' configuration section.");
                        }

                        var dataLakeServiceClient = !string.IsNullOrEmpty(connectionString) ?
                            new DataLakeServiceClient(connectionString, options) :
                            cred is not null ? new DataLakeServiceClient(settings.ServiceUri, cred, options) :
                                new DataLakeServiceClient(settings.ServiceUri, options);

                        var fileSystemClient = dataLakeServiceClient.GetFileSystemClient(settings.FileSystemName);

                        return fileSystemClient;
                    },
                    requiresCredential: false);

        protected override bool GetHealthCheckEnabled(AzureDataLakeFileSystemSettings settings)
            => !settings.DisableHealthChecks;

        protected override bool GetMetricsEnabled(AzureDataLakeFileSystemSettings settings) => false;

View on GitHub (pinned to 25830f84bd)