{"record":{"id":"b270f44f008ec417","repo":"microsoft/semantic-kernel","slug":"invalid-execution-settings-cannot-convert-to-olla","errorCode":null,"errorMessage":"Invalid execution settings, cannot convert to OllamaPromptExecutionSettings","messagePattern":"Invalid execution settings, cannot convert to OllamaPromptExecutionSettings","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"dotnet/src/Connectors/Connectors.Ollama/Settings/OllamaPromptExecutionSettings.cs","lineNumber":36,"sourceCode":"    /// Gets the specialization for the Ollama execution settings.\n    /// </summary>\n    /// <param name=\"executionSettings\">Generic prompt execution settings.</param>\n    /// <returns>Specialized Ollama execution settings.</returns>\n    public static OllamaPromptExecutionSettings FromExecutionSettings(PromptExecutionSettings? executionSettings)\n    {\n        switch (executionSettings)\n        {\n            case null:\n                return new();\n            case OllamaPromptExecutionSettings settings:\n                return settings;\n        }\n\n        var json = JsonSerializer.Serialize(executionSettings);\n        var ollamaExecutionSettings = JsonSerializer.Deserialize<OllamaPromptExecutionSettings>(json, JsonOptionsCache.ReadPermissive);\n        if (ollamaExecutionSettings is null)\n        {\n            throw new ArgumentException(\n            $\"Invalid execution settings, cannot convert to {nameof(OllamaPromptExecutionSettings)}\",\n            nameof(executionSettings));\n        }\n\n        // Restore the function choice behavior that lost internal state(list of function instances) during serialization/deserialization process.\n        ollamaExecutionSettings!.FunctionChoiceBehavior = executionSettings.FunctionChoiceBehavior;\n\n        return ollamaExecutionSettings;\n    }\n\n    /// <summary>\n    /// Sets the stop sequences to use. When this pattern is encountered the\n    /// LLM will stop generating text and return. Multiple stop patterns may\n    /// be set by specifying multiple separate stop parameters in a model file.\n    /// </summary>\n    [JsonPropertyName(\"stop\")]\n    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]\n    public IList<string>? Stop","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/dotnet/src/Connectors/Connectors.Ollama/Settings/OllamaPromptExecutionSettings.cs#L18-L54","documentation":"Thrown as an ArgumentException when JsonSerializer.Deserialize<OllamaPromptExecutionSettings> returns null after serializing the incoming PromptExecutionSettings to JSON and attempting conversion. This occurs when the JSON round-trip yields a null object, which is unexpected and indicates the input settings could not be mapped to the Ollama settings type.","triggerScenarios":"Passing a PromptExecutionSettings subclass to FromExecutionSettings whose JSON representation deserializes to null for OllamaPromptExecutionSettings; passing a malformed or empty settings object.","commonSituations":"Cross-connector settings reuse where a settings object incompatible with Ollama is passed; a custom PromptExecutionSettings with unusual serialization behavior; null or default settings that produce empty JSON.","solutions":["Pass OllamaPromptExecutionSettings directly if you know you are using Ollama.","Ensure the execution settings object is a valid, non-null instance with serializable properties.","If passing a generic PromptExecutionSettings, verify its properties are compatible with OllamaPromptExecutionSettings schema."],"exampleFix":"// before\nvar settings = new PromptExecutionSettings(); // generic\n// triggers conversion path\n\n// after\nvar settings = new OllamaPromptExecutionSettings\n{\n    Temperature = 0.7,\n    MaxTokens = 512\n};","handlingStrategy":"type-guard","validationCode":"if (executionSettings is not null &&\n    executionSettings is not OllamaPromptExecutionSettings &&\n    executionSettings is not PromptExecutionSettings)\n{\n    // potentially incompatible; convert explicitly\n}","typeGuard":"static bool IsCompatibleSettings(PromptExecutionSettings? s) =>\n    s is null or OllamaPromptExecutionSettings or PromptExecutionSettings;","tryCatchPattern":null,"preventionTips":["Pass OllamaPromptExecutionSettings directly when targeting Ollama.","Avoid passing cross-connector settings objects.","Unit-test the FromExecutionSettings conversion with your settings type."],"tags":["ollama","execution-settings","serialization","argument-exception"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}