diff --git a/src/AI/OllamaClient.cs b/src/AI/OllamaClient.cs index acf4edc..5d90ef6 100644 --- a/src/AI/OllamaClient.cs +++ b/src/AI/OllamaClient.cs @@ -361,6 +361,13 @@ public async Task ChatAsync(string message, CancellationToken cancellati var responseContent = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject(responseContent); + // Check if deserialization was successful + if (result == null) + { + System.Diagnostics.Debug.WriteLine("Ollama chat error: Failed to deserialize response"); + return null; + } + // Track token usage LastPromptTokens = result.PromptEvalCount; LastCompletionTokens = result.EvalCount; @@ -436,7 +443,10 @@ public async Task ChatAsync(string message, CancellationToken cancellati } } } - else if (result?.Message?.Content != null) + + // Fallback: If tool calls failed, returned no content, or follow-up request failed, + // use the original response content if available + if (result?.Message?.Content != null) { string cleanedResponse = CleanResponse(result.Message.Content); @@ -446,6 +456,9 @@ public async Task ChatAsync(string message, CancellationToken cancellati return cleanedResponse; } + + // No content available in response + System.Diagnostics.Debug.WriteLine("Ollama chat: Response received but no content available"); } else {