{"record":{"id":"3c9e546c2cb15007","repo":"OrchardCMS/OrchardCore","slug":"unsupported-azure-ai-search-vector-algorithm-kind","errorCode":null,"errorMessage":"Unsupported Azure AI Search vector algorithm kind.","messagePattern":"Unsupported Azure AI Search vector algorithm kind\\.","errorType":"exception","errorClass":"ArgumentOutOfRangeException","httpStatus":null,"severity":"error","filePath":"src/OrchardCore/OrchardCore.AzureAI.Core/Services/AzureAISearchIndexManager.cs","lineNumber":343,"sourceCode":"            return hnswConfiguration;\n        }\n\n        if (algorithm.Kind.EqualsOrdinalIgnoreCase(VectorSearchAlgorithmMap.ExhaustiveKnnKind))\n        {\n            var exhaustiveKnnConfiguration = new ExhaustiveKnnAlgorithmConfiguration(algorithm.Name);\n\n            if (algorithm.ExhaustiveKnnParametersMap is not null)\n            {\n                exhaustiveKnnConfiguration.Parameters = new ExhaustiveKnnParameters\n                {\n                    Metric = ToVectorSearchAlgorithmMetric(algorithm.ExhaustiveKnnParametersMap.Metric),\n                };\n            }\n\n            return exhaustiveKnnConfiguration;\n        }\n\n        throw new ArgumentOutOfRangeException(nameof(algorithm), algorithm.Kind, \"Unsupported Azure AI Search vector algorithm kind.\");\n    }\n\n    private static VectorSearchAlgorithmMetric? ToVectorSearchAlgorithmMetric(string metric)\n        => string.IsNullOrWhiteSpace(metric) ? null : new VectorSearchAlgorithmMetric(metric);\n\n    private static string GetVectorSearchProfileName(AzureAISearchIndexMetadata metadata, AzureAISearchIndexMapVectorInfo vectorInfo)\n    {\n        if (!string.IsNullOrWhiteSpace(vectorInfo?.VectorSearchConfiguration))\n        {\n            return vectorInfo.VectorSearchConfiguration;\n        }\n\n        var configuredProfileName = GetConfiguredProfiles(metadata.VectorSearchMappings).FirstOrDefault()?.Name;\n\n        return string.IsNullOrWhiteSpace(configuredProfileName)\n            ? VectorSearchMappings.DefaultProfileName\n            : configuredProfileName;\n    }","sourceCodeStart":325,"sourceCodeEnd":361,"githubUrl":"https://github.com/OrchardCMS/OrchardCore/blob/4306c0717fe573f6fca1b4955909ddab6a192807/src/OrchardCore/OrchardCore.AzureAI.Core/Services/AzureAISearchIndexManager.cs#L325-L361","documentation":"CreateVectorSearchAlgorithm maps the configured algorithm Kind to the Azure SDK's VectorSearchAlgorithm; when the metadata contains a Kind value outside the supported set, this ArgumentOutOfRangeException is thrown. It is an internal invariant check against unexpected enum values persisted in index metadata.","triggerScenarios":"Calling EnsureAlgorithm/CreateVectorSearchAlgorithm with an AzureAISearchVectorAlgorithmConfig whose Kind is neither Hnsw nor ExhaustiveKnn (e.g., stale or hand-edited metadata).","commonSituations":"Index metadata written by an older module version; JSON metadata manually edited with an invalid kind; future enum values from newer versions read by older code.","solutions":["Open the index profile and re-select a supported vector algorithm (Hnsw or ExhaustiveKnn)","Fix the algorithm Kind value in the stored AzureAISearchIndexMetadata","Re-create the index profile with a valid algorithm configuration"],"exampleFix":"// before\n\"algorithm\": { \"kind\": \"DiskANN\" }\n// after\n\"algorithm\": { \"kind\": \"Hnsw\" }","handlingStrategy":"validation","validationCode":"var valid = new[] { \"hnsw\", \"exhaustiveKnn\" }; var ok = valid.Contains(config.Kind, StringComparer.OrdinalIgnoreCase);","typeGuard":"bool isValidKind = Enum.IsDefined(typeof(AzureAISearchVectorAlgorithmKind), config.Kind);","tryCatchPattern":"try { await EnsureAlgorithm(index); } catch (ArgumentOutOfRangeException ex) when (ex.ParamName == \"algorithm\") { /* reconfigure algorithm kind */ }","preventionTips":["Only select supported algorithm kinds in index settings","Re-validate index profiles after module upgrades","Never manually edit stored metadata enum values"],"tags":["azure-ai-search","vector-search","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"4306c0717fe573f6fca1b4955909ddab6a192807","analyzedAt":"2026-09-13T17:41:05.024Z","contentChangedAt":"2026-09-13T17:41:05.024Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}