{"record":{"id":"dcea1d9fb633026d","repo":"microsoft/semantic-kernel","slug":"the-provided-response-modalities-responsemodalit","errorCode":null,"errorMessage":"The provided response modalities '{responseModalitiesString}' is not supported.","messagePattern":"The provided response modalities '(.+?)' is not supported\\.","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"dotnet/src/Connectors/Connectors.AzureOpenAI/Core/AzureClientCore.ChatCompletion.cs","lineNumber":185,"sourceCode":"        }\n\n        if (executionSettings.Modalities is ChatResponseModalities responseModalities)\n        {\n            return responseModalities;\n        }\n\n        if (executionSettings.Modalities is IEnumerable<string> responseModalitiesStrings)\n        {\n            return ParseResponseModalitiesEnumerable(responseModalitiesStrings);\n        }\n\n        if (executionSettings.Modalities is string responseModalitiesString)\n        {\n            if (Enum.TryParse<ChatResponseModalities>(responseModalitiesString, true, out var parsedResponseModalities))\n            {\n                return parsedResponseModalities;\n            }\n            throw new NotSupportedException($\"The provided response modalities '{responseModalitiesString}' is not supported.\");\n        }\n\n        if (executionSettings.Modalities is JsonElement responseModalitiesElement)\n        {\n            if (responseModalitiesElement.ValueKind == JsonValueKind.String)\n            {\n                var modalityString = responseModalitiesElement.GetString();\n                if (Enum.TryParse<ChatResponseModalities>(modalityString, true, out var parsedResponseModalities))\n                {\n                    return parsedResponseModalities;\n                }\n\n                throw new NotSupportedException($\"The provided response modalities '{modalityString}' is not supported.\");\n            }\n\n            if (responseModalitiesElement.ValueKind == JsonValueKind.Array)\n            {\n                try","sourceCodeStart":167,"sourceCodeEnd":203,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/dotnet/src/Connectors/Connectors.AzureOpenAI/Core/AzureClientCore.ChatCompletion.cs#L167-L203","documentation":"Thrown inside GetResponseModalities when executionSettings.Modalities is a single string and Enum.TryParse<ChatResponseModalities> fails (case-insensitive). The string is not a valid member of the ChatResponseModalities flags enum.","triggerScenarios":"Setting Modalities = \"video\" (or any other non-member string such as \"txt\", \"Voice\", or a comma-separated \"Text,Audio\"). Enum.TryParse does not split commas, so 'Text,Audio' as one string also fails.","commonSituations":"Passing a comma-separated multi-modality string instead of an array. Typo in the modality name. Using a modality not supported by the enum version in use.","solutions":["Pass a single valid enum name: \"Text\", \"Audio\", \"Image\", or \"Default\".","For multiple modalities pass an IEnumerable<string> (handled by ParseResponseModalitiesEnumerable) or a ChatResponseModalities flags value (e.g. ChatResponseModalities.Text | ChatResponseModalities.Audio).","Validate the string with Enum.TryParse before assignment."],"exampleFix":"// before\nsettings.Modalities = \"Text,Audio\"; // single string, parse fails (no comma-split)\n// throws: The provided response modalities 'Text,Audio' is not supported.\n\n// after\nsettings.Modalities = new[] { \"Text\", \"Audio\" };","handlingStrategy":"validation","validationCode":"static bool IsValidModality(string s) => Enum.TryParse<ChatResponseModalities>(s, true, out _);\n\n// before assigning\nif (!IsValidModality(modalityString))\n    throw new ArgumentException($\"'{modalityString}' is not a ChatResponseModalities value.\");","typeGuard":"bool IsValidSingleModality(string s) => Enum.TryParse<ChatResponseModalities>(s, true, out _);","tryCatchPattern":"try { /* assign settings.Modalities = \"Text\" */ }\ncatch (NotSupportedException ex) when (ex.Message.Contains(\"response modalities\"))\n{ throw new ConfigurationException(\"Use a single ChatResponseModalities name or an array for multiple.\", ex); }","preventionTips":["Pass multiple modalities as an array, not a comma-joined string.","Use the exact enum member names (case-insensitive).","Validate the string with Enum.TryParse before assignment."],"tags":["azure-openai","execution-settings","modalities","configuration","csharp"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}