{"record":{"id":"f5e2c4cafe1f138d","repo":"dotnet/orleans","slug":"configuration-for-azure-cosmos-db-provider-name-f5e2c4","errorCode":null,"errorMessage":"Configuration for Azure Cosmos DB provider {_name} is invalid. CosmosOptions.ContainerName is not valid.","messagePattern":"Configuration for Azure Cosmos DB provider (.+?) is invalid\\. CosmosOptions\\.ContainerName is not valid\\.","errorType":"validation","errorClass":"OrleansConfigurationException","httpStatus":null,"severity":"critical","filePath":"src/Azure/Shared/Cosmos/CosmosOptionsValidator.cs","lineNumber":43,"sourceCode":"    /// Initializes a new instance of the <see cref=\"CosmosOptionsValidator{TOptions}\"/> type.\n    /// </summary>\n    /// <param name=\"options\">The instance to be validated.</param>\n    /// <param name=\"name\">The option name to be validated.</param>\n    public CosmosOptionsValidator(TOptions options, string name)\n    {\n        _options = options;\n        _name = name;\n    }\n\n    /// <inheritdoc/>\n    public void ValidateConfiguration()\n    {\n        if (string.IsNullOrWhiteSpace(_options.DatabaseName))\n            throw new OrleansConfigurationException(\n                $\"Configuration for Azure Cosmos DB provider {_name} is invalid. {nameof(_options.DatabaseName)} is not valid.\");\n\n        if (string.IsNullOrWhiteSpace(_options.ContainerName))\n            throw new OrleansConfigurationException(\n                $\"Configuration for Azure Cosmos DB provider {_name} is invalid. {nameof(_options.ContainerName)} is not valid.\");\n\n        if (_options.CreateClient is null)\n        {\n            throw new OrleansConfigurationException(\n                $\"Configuration for Azure Cosmos DB provider {_name} is invalid. You must call {nameof(_options.ConfigureCosmosClient)} to configure access to Azure Cosmos DB.\");\n        }\n    }\n}","sourceCodeStart":25,"sourceCodeEnd":52,"githubUrl":"https://github.com/dotnet/orleans/blob/fca799fa70ecb6ad975224271703ca43221f58de/src/Azure/Shared/Cosmos/CosmosOptionsValidator.cs#L25-L52","documentation":"Thrown by CosmosOptionsValidator.ValidateConfiguration at startup when CosmosOptions.ContainerName is null, empty, or whitespace. The Cosmos provider must target a specific container.","triggerScenarios":"Configuring a Cosmos-backed provider without setting ContainerName.","commonSituations":"Missing ContainerName key in appsettings; wrong config binding; sample omission.","solutions":["Set options.ContainerName to a non-empty container name.","Verify the configuration section binding includes the ContainerName key.","Confirm the container exists in the Cosmos database."],"exampleFix":"// before\n// config: { \"DatabaseName\": \"Orleans\" } // no ContainerName\n\n// after\n// config: { \"DatabaseName\": \"Orleans\", \"ContainerName\": \"grainState\" }","handlingStrategy":"validation","validationCode":"if (string.IsNullOrWhiteSpace(options.ContainerName))\n    throw new OrleansConfigurationException(\"ContainerName required\");","typeGuard":"static bool HasContainerName(CosmosOptions o) => !string.IsNullOrWhiteSpace(o.ContainerName);","tryCatchPattern":null,"preventionTips":["Include ContainerName in every Cosmos provider configuration section.","Validate option values in a startup filter."],"tags":["cosmos","configuration","startup","azure","validation"],"backgroundTag":null,"analyzedSha":"fca799fa70ecb6ad975224271703ca43221f58de","analyzedAt":"2026-08-13T19:55:57.938Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}