{"record":{"id":"0ea95ed0742f9aaa","repo":"microsoft/aspire","slug":"endpoint-and-connection-string-are-missing-it-should-be","errorCode":null,"errorMessage":"Endpoint and connection string are missing. It should be provided in 'ConnectionStrings:{connectionName}' or under the 'Endpoint' and 'ConnectionString' key in the '{DefaultConfigSectionName}' configuration section.","messagePattern":"Endpoint and connection string are missing\\. It should be provided in 'ConnectionStrings:(.+?)' or under the 'Endpoint' and 'ConnectionString' key in the '(.+?)' configuration section\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"critical","filePath":"src/Components/Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration/AspireAppConfigurationExtensions.cs","lineNumber":70,"sourceCode":"    {\n        ArgumentNullException.ThrowIfNull(builder);\n        ArgumentException.ThrowIfNullOrEmpty(connectionName);\n\n        IConfigurationSection configSection = builder.Configuration.GetSection(DefaultConfigSectionName);\n\n        var settings = new AzureAppConfigurationSettings();\n        configSection.Bind(settings);\n\n        if (builder.Configuration.GetConnectionString(connectionName) is string connectionString)\n        {\n            ((IConnectionStringSettings)settings).ParseConnectionString(connectionString);\n        }\n\n        configureSettings?.Invoke(settings);\n\n        if (settings.Endpoint is null && settings.ConnectionString is null)\n        {\n            throw new InvalidOperationException($\"Endpoint and connection string are missing. It should be provided in 'ConnectionStrings:{connectionName}' or under the 'Endpoint' and 'ConnectionString' key in the '{DefaultConfigSectionName}' configuration section.\");\n        }\n\n        builder.Configuration.AddAzureAppConfiguration(\n            options =>\n            {\n                if (settings.ConnectionString is null)\n                {\n                    options.Connect(settings.Endpoint, settings.Credential ?? AzureCredentialHelper.CreateDefaultAzureCredential());\n                }\n                else\n                {\n                    options.Connect(settings.ConnectionString);\n                    if (settings.AnonymousAccess)\n                    {\n                        // remove the Authorization header to send anonymous requests\n                        options.ConfigureClientOptions(clientOptions =>\n                            clientOptions.AddPolicy(new RemoveAuthorizationHeaderPolicy(), HttpPipelinePosition.PerRetry));\n                    }","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/microsoft/aspire/blob/25830f84bd145686607ad00c057b3f84e2e51d43/src/Components/Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration/AspireAppConfigurationExtensions.cs#L52-L88","documentation":"Azure App Configuration requires either an endpoint (with AAD/credential auth) or a connection string. After applying configureSettings, if both MicrosoftAppConfigurationSettings.Endpoint and ConnectionString are still null, Aspire throws because AddAzureAppConfiguration cannot construct a client. The values can come from the connection string binding or the 'Aspire:Microsoft:Extensions:Configuration:AzureAppConfiguration' section.","triggerScenarios":"Calling AddAzureAppConfiguration(connectionName) where ConnectionStrings:{connectionName} is missing AND settings.Endpoint/ConnectionString are not provided in the DefaultConfigSectionName configuration section.","commonSituations":"Forgetting WithReference(azureAppConfig) in the AppHost so no connection string is injected; local dev appsettings missing the endpoint; connection name typo; relying on DefaultAzureCredential without providing the endpoint URI.","solutions":["Add the App Configuration resource reference in the AppHost so 'ConnectionStrings:{connectionName}' is injected.","Or set Endpoint (e.g. https://<store>.azconfig.io) in the 'Aspire:Microsoft:Extensions:Configuration:AzureAppConfiguration' section.","Or set ConnectionString directly in that configuration section or via the connection string binding.","Confirm the connectionName argument matches the configuration key."],"exampleFix":"// before (appsettings.json)\n{ }\n// after\n{ \"ConnectionStrings\": { \"appconfig\": \"https://mystore.azconfig.io\" } }\n// AppHost: builder.AddProject<Projects.Api>(\"api\").WithReference(appConfiguration);","handlingStrategy":"validation","validationCode":"// fail fast before AddAzureAppConfiguration\nvar cs = builder.Configuration.GetConnectionString(connectionName);\nvar section = builder.Configuration.GetSection(\"Aspire:Microsoft:Extensions:Configuration:AzureAppConfiguration\");\nif (cs is null && section[\"Endpoint\"] is null && section[\"ConnectionString\"] is null)\n{\n    throw new InvalidOperationException($\"App Configuration endpoint/connection string missing for '{connectionName}'.\");\n}","typeGuard":"bool HasAppConfigInfo(string? cs, string? endpoint, string? connStr) => !string.IsNullOrEmpty(cs) || endpoint is not null || connStr is not null;","tryCatchPattern":"try { builder.AddAzureAppConfiguration(connectionName); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"Endpoint and connection string are missing\")) { logger.LogCritical(ex, \"Azure App Configuration not set for {ConnectionName}\", connectionName); throw; }","preventionTips":["Reference the App Configuration resource in the AppHost with WithReference.","Provide the store endpoint (https://<store>.azconfig.io) for managed-identity scenarios.","Validate config presence in a startup guard so failures are immediate and clear."],"tags":["azure-app-configuration","missing-connection-string","configuration"],"backgroundTag":"missing-required-config","analyzedSha":"25830f84bd145686607ad00c057b3f84e2e51d43","analyzedAt":"2026-09-16T11:10:06.193Z","contentChangedAt":"2026-09-16T11:10:06.193Z","schemaVersion":2},"datasetVersion":"2026-09-21T09:17:21.228Z"}