{"record":{"id":"773be2107d16d4b0","repo":"microsoft/semantic-kernel","slug":"the-provided-response-modalities-responsemodalit-773be2","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.OpenAI/Core/ClientCore.ChatCompletion.cs","lineNumber":1159,"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                Enum.TryParse<ChatResponseModalities>(responseModalitiesElement.GetString(), true, out var parsedResponseModalities))\n            {\n                return parsedResponseModalities;\n            }\n\n            if (responseModalitiesElement.ValueKind == JsonValueKind.Array)\n            {\n                var modalitiesEnumeration = JsonSerializer.Deserialize<IEnumerable<string>>(responseModalitiesElement.GetRawText())!;\n                return ParseResponseModalitiesEnumerable(modalitiesEnumeration);\n            }\n\n            throw new NotSupportedException($\"The provided response modalities '{executionSettings.Modalities?.GetType()}' is not supported.\");\n        }","sourceCodeStart":1141,"sourceCodeEnd":1177,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/dotnet/src/Connectors/Connectors.OpenAI/Core/ClientCore.ChatCompletion.cs#L1141-L1177","documentation":"Thrown when Modalities is a single string that fails case-insensitive Enum.TryParse against ChatResponseModalities. The whole token is reported. This is the scalar counterpart of error 394.","triggerScenarios":"executionSettings.Modalities is a string like 'video', 'txt', or 'text,audio' (comma-bundled instead of a flags enum name) that does not match a single enum member.","commonSituations":"Passing a comma-separated list as one string instead of an array; typos; mixing in non-enum tokens.","solutions":["Pass a single valid ChatResponseModalities name (e.g. 'Text', 'Audio', 'Default'), case-insensitive.","For combinations, use the flags form (e.g. 'Text, Audio' as the enum allows) or supply an array.","Avoid comma-bundling multiple modalities in one string unless the enum supports flags parsing."],"exampleFix":"// before\nsettings.Modalities = \"text,audio\";\n// after\nsettings.Modalities = new[] { \"text\", \"audio\" };","handlingStrategy":"validation","validationCode":"static string NormalizeModalityString(string? s) { if (s is not null && Enum.TryParse<ChatResponseModalities>(s, true, out _)) return s; throw new ArgumentException($\"Unknown modality {s}\"); }","typeGuard":"static bool IsValidModalityString(string? s) => s is not null && Enum.TryParse<ChatResponseModalities>(s, true, out _);","tryCatchPattern":"try { await client.GetChatCompletionAsync(...); }\ncatch (NotSupportedException ex) when (ex.Message.Contains(\"response modalities\")) { /* use array form for combinations */ }","preventionTips":["Pass combinations as an array, not a comma string.","Validate with Enum.TryParse before assigning."],"tags":["openai","chat-completion","response-modalities","enum-parse"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}