diff --git a/Services/ChatService.cs b/Services/ChatService.cs
index 8a17f1f..39f5537 100644
--- a/Services/ChatService.cs
+++ b/Services/ChatService.cs
@@ -553,6 +553,11 @@ Für welche Plattform soll die App entwickelt werden? Web, Mobile oder Desktop?
// Post-Processing: Offene tool_use-Blöcke ohne tool_result → synthetische tool_results einfügen
FixOrphanedToolUse(history);
+ // Post-Processing: tool_result-Blöcke ohne passendes tool_use entfernen
+ // Tritt auf wenn eine ältere ask_user_choice-Chain als Text-only geladen wird:
+ // Der tool_use(ask_user_choice) geht verloren, aber das tool_result(iter 999) in der nächsten Chain bleibt.
+ FixOrphanedToolResults(history);
+
// Post-Processing: Orphaned web_search server_tool_use entfernen
// Bei alten DB-Einträgen wurde web_search_tool_result nur als Sources-Array gespeichert,
// nicht als Raw-JSON → BuildHistoryFromDb überspringt sie (Array-Check) →
@@ -656,6 +661,65 @@ Für welche Plattform soll die App entwickelt werden? Web, Mobile oder Desktop?
}
}
+ ///
+ /// Entfernt verwaiste tool_result-Blöcke aus user-Messages:
+ /// tool_results deren tool_use_id in keinem vorherigen assistant-Block existiert.
+ /// Tritt auf wenn eine ältere ask_user_choice-Chain als Text-only geladen wird –
+ /// der tool_use geht verloren, aber das tool_result in der nächsten Chain bleibt.
+ ///
+ private static void FixOrphanedToolResults(List