{"record":{"id":"e766a978d4ad8702","repo":"microsoft/aspire","slug":"connector-namespace-resource-names-must-contain-between-2","errorCode":null,"errorMessage":"Connector Namespace resource names must contain between 2 and 64 characters.","messagePattern":"Connector Namespace resource names must contain between 2 and 64 characters\\.","errorType":"validation","errorClass":"ArgumentOutOfRangeException","httpStatus":null,"severity":"error","filePath":"src/Aspire.Hosting.Azure.ConnectorNamespace/AzureConnectorNamespaceExtensions.cs","lineNumber":755,"sourceCode":"        ArgumentException.ThrowIfNullOrWhiteSpace(objectId, objectIdParamName);\n        ArgumentException.ThrowIfNullOrWhiteSpace(tenantId, tenantIdParamName);\n        if (!Guid.TryParse(objectId, out _))\n        {\n            throw new ArgumentException($\"The {policyDescription} object ID must be a valid GUID.\", paramName);\n        }\n\n        if (!Guid.TryParse(tenantId, out _))\n        {\n            throw new ArgumentException($\"The {policyDescription} tenant ID must be a valid GUID.\", paramName);\n        }\n    }\n\n    private static void ValidateConnectorResourceName(string name, string paramName)\n    {\n        ArgumentException.ThrowIfNullOrWhiteSpace(name, paramName);\n        if (name.Length is < 2 or > 64)\n        {\n            throw new ArgumentOutOfRangeException(\n                paramName,\n                name,\n                \"Connector Namespace resource names must contain between 2 and 64 characters.\");\n        }\n\n        if (name.Any(static character =>\n            !char.IsAsciiLetterOrDigit(character) &&\n            character is not '-' and not '_'))\n        {\n            throw new ArgumentException(\n                \"Connector Namespace resource names can contain only ASCII letters, numbers, hyphens, and underscores.\",\n                paramName);\n        }\n    }\n\n}\n","sourceCodeStart":737,"sourceCodeEnd":772,"githubUrl":"https://github.com/microsoft/aspire/blob/25830f84bd145686607ad00c057b3f84e2e51d43/src/Aspire.Hosting.Azure.ConnectorNamespace/AzureConnectorNamespaceExtensions.cs#L737-L772","documentation":"Aspire validates that Connector Namespace resource names are between 2 and 64 characters before creating the underlying Azure resource. Azure rejects names outside this range, so AddConnection, WithAccessPolicy, WithIdentityAccessPolicy, and AddMcpServerConfig throw an ArgumentOutOfRangeException up front with the offending value.","triggerScenarios":"Calling any of AddConnection/WithAccessPolicy/WithIdentityAccessPolicy/AddMcpServerConfig on an Azure Connector Namespace with a name argument whose string length is 1 character or 65+ characters.","commonSituations":"Generating names programmatically from GUIDs or concatenations that exceed 64 chars; passing a single-character short name like 'a'; truncation logic producing a 1-char string.","solutions":["Shorten the name to at most 64 characters","Lengthen the name to at least 2 characters","Compute names from constants and assert length before calling the API"],"exampleFix":"// before\nbuilder.AddAzureConnectorNamespace(\"ns\").AddConnection(\"x\", ...);\n// after\nbuilder.AddAzureConnectorNamespace(\"ns\").AddConnection(\"sql-conn\", ...);","handlingStrategy":"validation","validationCode":"if (string.IsNullOrWhiteSpace(name) || name.Length is < 2 or > 64)\n    throw new ArgumentOutOfRangeException(nameof(name), name, \"Name must be 2-64 characters.\");","typeGuard":null,"tryCatchPattern":"try { builder.AddConnection(name, ...); }\ncatch (ArgumentOutOfRangeException ex) when (ex.ParamName == \"name\") { log.LogError(ex, \"Invalid name length\"); }","preventionTips":["Assert name length in a shared helper before building resources","Keep name-generation logic under 64 chars with truncation guards","Unit-test generated names against the 2-64 rule"],"tags":["azure","validation","argument-out-of-range","naming"],"backgroundTag":"value-out-of-range","analyzedSha":"25830f84bd145686607ad00c057b3f84e2e51d43","analyzedAt":"2026-09-16T11:10:06.193Z","contentChangedAt":"2026-09-16T11:10:06.193Z","schemaVersion":2},"datasetVersion":"2026-09-21T04:17:39.646Z"}