Zuerst auf den Rest der Fehlermeldung achten
Bevor Sie den Verlauf löschen, die Symptome trennen
thread not found
Fehler beim Verweis auf den Speicherort (der Verlauf ist oft trotzdem lesbar)
Timeout / App server request expired while queued
Dieselbe Sendefehler-Anzeige, aber anderer Pfad
Inhalt
- 1. Was bedeutet „thread not found“?
- 2. Praxisbeispiel: Das Senden wurde wiederhergestellt, obwohl der Verlauf erhalten blieb
- 3. Die Reihenfolge der Schritte, wenn nur das Senden fehlschlägt
- 4. Dieselbe Anzeige kann unterschiedliche Ursachen und Lösungen haben
- 5. Wenn es weiter nicht funktioniert: Prüfung und Übergabe
- 6. Welche Angaben Sie bei einer Untersuchungsanfrage angeben sollten
- 7. Die Wiederherstellung mit einer kurzen Antwort prüfen
- FAQ
1. Was bedeutet „thread not found“?
Wenn Sie in OpenAIs Codex eine Folgenachricht an eine bestehende Aufgabe senden, kann ein Fehler wie dieser erscheinen. Die Kennung am Ende bezeichnet die betroffene Konversation und ist unten unkenntlich gemacht.
Beim Senden der Nachricht ist ein Fehler aufgetreten
thread not found: <ID der Konversation>
In Apps mit englischer Anzeige lautet die erste Zeile Error submitting message (#30710).
Error submitting message
thread not found: <conversation ID>
Dieser Artikel behandelt bestehende lokale Aufgaben in der Desktop-App. Er stützt sich auf Protokolle aus einem Fall, den wir in unserer Umgebung (Windows) beobachtet haben, auf öffentlichen Quellcode und auf Fehlerberichte von Nutzern, und gibt den Stand vom 21. September 2026 wieder.
„Lesen“ und „Senden“ sind getrennte Prüfungen
Gespeicherter Verlauf
Frühere Nachrichten lesen
Laden gespeicherter Daten
Für die Ausführung geladene Konversation
Nimmt neue Anweisungen entgegen
Konversation fortsetzen → nächste Anweisung
Wenn die Konversation für die Ausführung nicht gefunden wird, kann das Senden fehlschlagen, obwohl der frühere Verlauf angezeigt werden kann.
Die Anzeige des Verlaufs und die Annahme neuer Anweisungen sind getrennte Mechanismen. Bei einer Aufgabe, die längere Zeit nicht benutzt wurde, kann der Verlauf lesbar sein, während die Konversation auf der Seite, die Anweisungen annimmt, nicht geladen ist. Wird dann einfach gesendet, erscheint dieser Fehler.
Hintergrund (interne Namen der App-Kommunikation)
Laut der offiziellen App-Server-Spezifikation liest thread/read den gespeicherten Verlauf; die Konversation wird damit nicht in den Speicher für die Ausführung geladen. Die Funktion unterscheidet sich von thread/resume, das eine Konversation fortsetzt. Dies sind interne Namen der App-Kommunikation, keine Befehle, die Sie in das Chatfeld eintippen.
Im öffentlichen Quellcode des Sendevorgangs zur CLI-Version 0.155.0-alpha.9, die in den gespeicherten Metadaten unserer Umgebung steht, holt der Einstieg von turn/start die Konversation, und schlägt das fehl, liefert er thread not found zurück. Die Suche erfolgt in der Liste der Konversationen im Arbeitsspeicher. Dieser Fehler bedeutet daher nicht, dass die gespeicherte Datei verloren ist.
notLoaded ist der normale Zustand, in dem eine gespeicherte Konversation derzeit nicht für die Ausführung geladen ist. Laut der offiziellen App-Server-Spezifikation wird eine Konversation, deren letzter Abonnent sich abgemeldet hat, nach 30 Minuten ohne Abonnenten und ohne Aktivität entladen und wechselt zu notLoaded. Problematisch ist, dass aus diesem Zustand der nötige Fortsetzungsschritt nicht erfolgt und die nächste Anweisung nicht angenommen werden kann. Auch in unserem Beispiel trat der Fehler mehr als eine Stunde nach der letzten erfolgreichen Sendung auf.
2. Praxisbeispiel: Das Senden wurde wiederhergestellt, obwohl der Verlauf erhalten blieb
Dies ist ein Beispiel aus unserer Umgebung. Bei einer Aufgabe in der Windows-App 26.915.31029 trat dieser Fehler auf, als wir eine Anweisung zum Fortsetzen sendeten. Im Folgenden sind die App-Protokolle vom 21. September 2026 in UTC umgerechnet und ohne Konversations-IDs und Aufgabendetails zusammengefasst.
Vom erneuten Versuch auf dem Bildschirm bis zum tatsächlichen Neuladen
Senden fehlgeschlagen (interne Antwort war thread not found)
Der Bildschirm hatte die Konversation bereits als wieder aufgenommen behandelt
Gleicher Sendefehler nach dem erneuten Öffnen
Das bloße Wechseln der Ansicht half nicht
Nicht geladener Zustand bestätigt → Konversation erfolgreich neu geladen
Nicht geladen → Fortsetzung als nötig eingestuft → Fortsetzung erfolgreich
Nächste Anweisung angenommen; Senden erfolgreich
Eine spätere Verlaufsprüfung zeigte, dass beide Durchläufe mit Status completed und ohne Fehler abgeschlossen waren
Die gespeicherte Konversation und das Arbeitsverzeichnis blieben erhalten, und auch der Lesevorgang des Verlaufs gelang. Die ursprüngliche Aufgabe war nicht archiviert.
Was dieser Fall bestätigt hat
- Der Verlauf war noch vorhanden
- Das Senden gelang nach dem erneuten Laden
- Bei der Untersuchung wurden Verlauf und Einstellungen nicht verändert
Was dieser Fall nicht zeigt
- Den genauen Auslöser, durch den die Konversation intern entladen wurde
- Eine Ursache, die allen Nutzern gemeinsam ist
Wahrscheinlich liegt eine Abweichung vor: Der Bildschirm behandelte die Konversation als wieder aufgenommen, intern war sie aber nicht geladen. Nachdem das Senden wieder funktioniert, prüfen Sie außerdem, ob die Arbeit dieses Durchgangs korrekt ist.
3. Die Reihenfolge der Schritte, wenn nur das Senden fehlschlägt
Speichern Sie Ihre Eingabe zunächst lokal, damit sie nicht verloren geht. Bevor Sie erneut auf Senden klicken, prüfen Sie, ob dieselbe Anweisung bereits in der Konversation steht oder die Verarbeitung schon begonnen hat. Gerade bei Anweisungen, die Veröffentlichen, Löschen oder Kaufen umfassen, ist es wichtig, keine verspäteten Anfragen zu stapeln.
Konversation und letzte Arbeit prüfen
Prüfen Sie, ob Sie frühere Nachrichten lesen können und ob die letzte Anweisung als abgeschlossen, laufend oder fehlerhaft erscheint. Steht die Aufgabe nicht in der Liste, öffnen Sie außerdem unter den Einstellungen „Archived chats“ (laut dem offiziellen Leitfaden zur Fehlerbehebung). Haben Sie Dateien bearbeitet, speichern Sie sie und notieren Sie den Arbeitsort. Betrachten Sie Anzeigeprobleme der Konversation getrennt vom Verlust von Arbeitsdateien.
Auf das Laden warten und dieselbe Aufgabe erneut öffnen
Wenn Sie die Aufgabe gerade geöffnet haben, warten Sie, bis sich die Anzeige des Verlaufs beruhigt. Wechseln Sie zu einer anderen Aufgabe, dann wieder zurück, und probieren Sie eine kleine Prüfung. In unserem Beispiel half allein dieser Schritt nicht. Statt dieselbe Nachricht immer wieder zu senden, gehen Sie daher zum nächsten Schritt über.
Andere Arbeit prüfen und die App vollständig neu starten
Läuft eine andere Aufgabe, warten Sie, bis sie fertig ist, oder speichern Sie das Nötige und halten Sie sie an. Beenden Sie dann die App, starten Sie sie neu und öffnen Sie dieselbe Aufgabe. Das Umschalten der Aufgabenansicht und der Neustart der gesamten App sind verschiedene Vorgänge.
Prüfen, ob eine kurze Antwort vollständig ist
Senden Sie die ursprüngliche große Aufgabe nicht sofort erneut. Schicken Sie stattdessen eine Prüfung ohne Dateiänderungen oder Werkzeugnutzung. Sobald die Antwort vollständig ist, prüfen Sie die zuletzt geleistete Arbeit und kehren Sie zur normalen Fortsetzung zurück.
Die Prüfnachricht können Sie zum Beispiel so eingrenzen. Da sie als gewöhnliche Anweisung an das Modell gesendet wird, kann sie wie üblich auf Ihr Nutzungskontingent angerechnet werden.
Dies ist eine Verbindungsprüfung. Nehmen Sie die frühere Arbeit nicht wieder auf.
Antworten Sie, ohne Dateien zu lesen oder zu schreiben und ohne Werkzeuge aufzurufen, nur mit „Antwort erhalten.“
Die Meldung im GitHub-Repository von OpenAI #30710 enthält einen Fall, in dem ein Sendefehler direkt nach dem Öffnen einer Konversation unter Windows durch einen vollständigen Neustart der App behoben wurde. Die offizielle Anleitung zur Fehlerbehebung, „vor dem Neustart auf den Abschluss einer laufenden Aufgabe warten“, betrifft den Fall, dass das integrierte Terminal hängt. Sie ist keine Anleitung für diesen Sendefehler.
Wenn Sie eine Aktualisierung versuchen, notieren Sie zuerst Ihre aktuelle App-Version und die Symptome. Laut dem offiziellen Leitfaden zur Fehlerbehebung können die mit der Desktop-App ausgelieferte Codex-Version und eine separat installierte CLI unterschiedlich sein. Eine Aktualisierung der CLI bedeutet nicht, dass ein Fehler in der App behoben ist.
4. Dieselbe Anzeige kann unterschiedliche Ursachen und Lösungen haben
Verlassen Sie sich nicht allein auf die Zeile „Fehler beim Senden der Nachricht“, sondern achten Sie auf den Wortlaut danach und auf den fehlgeschlagenen Vorgang. Die folgende Tabelle trennt Beispiele aus öffentlichen Berichten und aus unserer Umgebung nach Symptomen.
| Sichtbares Symptom | Was zu prüfen ist | Was man nicht vorschnell annehmen sollte |
|---|---|---|
| Verlauf lässt sich lesen, aber nicht senden | Ob sich nach dem erneuten Laden senden lässt | Dass der Verlauf lesbar ist, heißt nicht, dass man senden kann |
| Auch das Archivieren schlägt fehl / os error 2 | Zustand der gespeicherten Dateien und der Verweise darauf (der Verlauf ist oft trotzdem lesbar) | Auch wenn das Senden nach einem Neustart wieder funktioniert, kann das Archivieren weiter fehlschlagen |
| Timeout / App server request expired while queued | Ob etwa 30 Sekunden gewartet wurde, die Antwort hängt oder eine Warteschlange besteht | Nicht mit dem sofort zurückgegebenen thread not found vermischen |
| Fortsetzen und Anhalten schlagen beide fehl | Ob tatsächlich etwas läuft oder die Anzeige veraltet ist | Die Anzeige „läuft“ auf dem Bildschirm allein nicht blind vertrauen |
Wenn der Verlauf erhalten bleibt, ist der Hinweis eines macOS-Nutzers in #30710 hilfreich. Der Bildschirm behandelte die Konversation als wieder aufgenommen, doch das Senden schlug wiederholt fehl; später gelang das Neuladen auf einem neuen Bildschirm. Dieser Bericht beschreibt eine Zustandsinkonsistenz, die sich nicht durch ein „Wettlaufproblem nur im Moment des Öffnens“ erklären lässt, und sein Verlauf ähnelt dem hier beschriebenen Fall sehr.
Ein Gegenbeispiel bietet der Windows-Bericht #39179: Dort ließ sich der Verlauf lesen, Senden und Archivieren schlugen aber fehl, und in der Umgebung des Verfassers hielt das auch nach einem Neustart an. Ein späterer Nachtrag berichtet außerdem, dass man nach einem vollständigen Neustart der App fortfahren konnte, das Archivierungsproblem aber nicht zuverlässig behoben war. #39575 enthält Diagnosen zu den Zeitstempeln in gespeicherten Dateinamen und zum Verweisprozess. Alle diese Berichte stammen aus Untersuchungen von Nutzern. Schließen Sie daher nicht, dass Ihre eigenen Daten beschädigt sind, nur weil ein Pfadpräfix oder eine Zeitdifferenz auftaucht.
Der Typ mit Wartezeit zeigt sich im Bericht über Sendezeitüberschreitungen #27395: Dort wurde turn/start nach 30 Sekunden (timeoutMs=30000) abgebrochen und als Timeout fehlgeschlagen; die Protokolle sind beigefügt. Im Nachtrag zu #23644 wartete eine Anfrage, auf der das Senden aufbaut, etwa 30 Sekunden in der Warteschlange (queueWaitMs=30001), bevor sie mit App server request expired while queued fehlschlug. Den Typ, bei dem auch das Anhalten fehlschlägt, zeigt der Bericht über inkonsistenten Verlauf und Ausführungszustand #42604.
5. Wenn es weiter nicht funktioniert: Prüfung und Übergabe
Wenn es nach einem Neustart weiterhin nicht funktioniert, prüfen Sie, ob sich der gespeicherte Verlauf lesen lässt. Wenn Ihnen eine Funktion zur Verfügung steht, mit der eine andere, funktionierende Codex-Aufgabe die Zielaufgabe lesen kann, beginnen Sie mit einer rein lesenden Prüfung. Wichtig ist außerdem, die Ziel-ID nicht mit einer Aufgabe mit ähnlichem Namen zu verwechseln.
Untersuche die Zielaufgabe im reinen Lesemodus.
Zielkennung: die im Fehler angezeigte Konversations-ID
Melde, ob sich der Verlauf lesen lässt, den Zustand des letzten Durchgangs und etwaige Fehler.
Sende keine Nachrichten an andere Aufgaben, nimm keine frühere Arbeit wieder auf, erstelle keinen Fork,
archiviere nichts, ändere keine Einstellungen, bearbeite die Datenbank nicht und verschiebe oder lösche keine Verlaufsdateien.
Falls keine Funktion zur Aufgabenverwaltung verfügbar ist, melde das bitte.
Dieses Beispiel gilt für Umgebungen, in denen Funktionen zur Aufgabenverwaltung verfügbar sind. Lässt sich eine solche Funktion nicht finden, raten Sie nicht an ähnlich benannten internen Befehlen, sondern gehen Sie zum Bericht in Kapitel 6 über.
Wählen Sie den nächsten Schritt je nach Prüfergebnis
- Verlauf lesbar, vorherige Arbeit abgeschlossen
- Eine zusätzliche Prüfnachricht senden oder einen Fork erwägen, der den Verlauf übernimmt. Die ursprüngliche Aufgabe beibehalten.
- Verlauf lesbar, aber unklar, ob die Arbeit läuft
- Zuerst Betriebszustand und Dateiänderungen prüfen. Dieselbe Arbeit nicht in einer anderen Aufgabe doppelt laufen lassen.
- Ein Speicherfehler erscheint (z. B. os error 2)
- Eine Sicherung bewahren und den Fehler mit Protokollen melden. Die Originaldateien nicht löschen, um das Laden zu reparieren.
Im Nachtrag zu #39179 wird beschrieben, dass ein kurzer Prüfbefehl aus einer anderen, funktionierenden Aufgabe gesendet wurde und nach Abschluss der Antwort auch die normale Konversation wiederhergestellt war. Eine weitere Ergänzung berichtet jedoch über ein ähnliches Senden, das fehlschlug, und darüber, dass eine neue Anweisung nach einem Fork eines abgeschlossenen Verlaufs angenommen wurde. Angesichts dieses Gegenbeispiels ergänzt der ursprüngliche Melder, dass es keine allgemeine Lösung sei.
Ein Fork ist ein Vorgang, der einen abgeschlossenen Verlauf in eine separate Aufgabe übernimmt. Die ursprüngliche Aufgabe wird dadurch nicht repariert. Gehen Sie nicht davon aus, dass unvollständige Arbeit einfach weiterläuft. Prüfen Sie nach der Übergabe das Arbeitsverzeichnis, die geänderten Dateien und den zuletzt abgeschlossenen Schritt.
Verlaufsdaten und Arbeitsdateien sind ebenfalls getrennt. Auch wenn sich eine Konversation nicht öffnen lässt, können die Änderungen am Projekt noch vorhanden sein. Umgekehrt sind die Dateien nicht unbedingt aktuell, selbst wenn Sie die Konversation lesen können. Verwendet Ihr Projekt Git, prüfen Sie die Liste der Änderungen und klären Sie, was bereits ausgeführt wurde, bevor Sie fortfahren.
6. Welche Angaben Sie bei einer Untersuchungsanfrage angeben sollten
Im Bericht sollten Sie nicht nur „sendet nicht“ schreiben, sondern trennen, was erfolgreich war und was fehlschlug. Angaben zur App-Version, zum Betriebssystem, zu Zeitpunkt und Zeitzone, zur Ziel-Konversations-ID und zur unmittelbar vorangegangenen Aktion erleichtern die Nachverfolgung, ohne dass unterschiedliche Störungen vermischt werden. Sie müssen nicht von Anfang an den vollständigen Konversationstext veröffentlichen.
Vorlage für Berichtsnotizen
- Umgebung
- App-Version / Betriebssystem / Ausführungsort, z. B. lokal oder remote
- Auftreten
- Zeitpunkt und Zeitzone / vollständiger Fehlertext / unmittelbar vorher ausgeführte Aktion
- Was funktioniert und was nicht
- Ergebnisse für Verlaufsanzeige / Senden / Anhalten / Archivieren
- Versuchte Schritte
- Was sich vor und nach dem erneuten Öffnen oder Neustart geändert hat
Wenn Sie die Protokolle prüfen können, hilft ein Blick auf die Zeilen vor und nach der fehlgeschlagenen Anfrage. method=turn/start markiert den Beginn einer Anweisung, thread/resume das Fortsetzen einer Konversation, und errorCode ist ein Hinweis auf die interne Antwort. Behalten Sie auch die erfolgreichen Zeilen und unterscheiden Sie, ob derselbe Fehler nur in mehreren Protokollzeilen auftaucht oder tatsächlich mehrfach fehlgeschlagen ist.
Zu den Speicherorten der App-Protokolle nennt der offizielle Leitfaden für macOS ~/Library/Logs/com.openai.codex/YYYY/MM/DD. Unter Windows lagen sie in unserer Umgebung an den folgenden zwei Orten.
- PC, auf dem der Fehler auftrat:
%LOCALAPPDATA%\Codex\Logs - Microsoft-Store-Version auf einem anderen PC (Protokolle von März 2026):
%LOCALAPPDATA%\Packages\OpenAI.Codex_<ID>\LocalCache\Local\Codex\Logs(auf diesem PC gab es den Ordner%LOCALAPPDATA%\Codexüberhaupt nicht)
Laut der Erklärung von Microsoft können Dateien, die eine paketierte App neu im AppData-Bereich anlegt, an einem eigenen Ort der App geschrieben werden und der App dennoch so erscheinen, als lägen sie am üblichen Ort. Finden Sie sie an einem Ort nicht, suchen Sie auch am anderen. Laut offizieller Anleitung werden Sitzungsdaten in $CODEX_HOME/sessions gespeichert (Standard: ~/.codex/sessions). Weichen Einstellungen oder Ausführungsort ab, liegt das gesuchte Element vielleicht einfach nicht in dem Ordner, den Sie ansehen. Schließen Sie deshalb nicht allein aus „die Suche liefert nichts“ auf eine Löschung.
Wo sich die Daten von Codex (CODEX_HOME) oder der App selbst befinden, nachdem Sie sie auf ein anderes Laufwerk verschoben haben, ist in ChatGPT und Codex auf ein anderes Laufwerk verschieben festgehalten.
Der offizielle Leitfaden erklärt, wie Sie Feedback senden können, indem Sie im Eingabefeld / eingeben. Protokolle und Screenshots können Konversationstexte, E-Mail-Adressen, Namen anderer Projekte und lokale Pfade enthalten. Stellen Sie in einem öffentlichen Issue nur die nötigen Teile anonymisiert bereit, und prüfen Sie beim Weitergeben vollständiger IDs oder Ähnlichem, an wen und für wen sichtbar das geht.
7. Die Wiederherstellung mit einer kurzen Antwort prüfen
Die erste Reaktion auf diesen Fehler ist nicht das Löschen des Verlaufs, sondern die getrennte Prüfung, ob er sich lesen lässt, ob sich die Konversation fortsetzen lässt und ob eine neue Anweisung vollständig ausgeführt wird. Im vorliegenden Fall kam das Senden nach dem erneuten Laden der Konversation wieder in Gang. Erscheint ein Speicherfehler, handelt es sich um einen anderen Weg. Gehen Sie dann zu den Prüfungen in Kapitel 5.
Wenn eine kurze Antwort vollständig ist, prüfen Sie, wie weit die ursprüngliche Anweisung gekommen ist, und setzen Sie an dem nötigen Schritt fort. Wenn es weiterhin nicht funktioniert, haben eine schreibgeschützte Untersuchung und das Sichern der Protokolle Vorrang. Wichtig ist, die Wiederherstellung nicht schon deshalb als abgeschlossen zu betrachten, weil die Fehlermeldung verschwunden ist oder sich ein Fork erstellen ließ.
Verwandte Artikel:
- Codex-Kapazitätsfehler und ausgeschöpfte Nutzungslimits: Unterschiede und Lösungen (wenn „Selected model is at capacity“ erscheint)
- Voraussetzungen für Remote-Verbindungen und Prüfungen nach dem Trennen (Ausführungsort und Ruhezustand des PCs)
- Ähnliche Fehler in Claude Code: Prompt is too long (Eingabegröße) und MCP error -32000: Connection closed (Verbindung zu externen Werkzeugen)
FAQ
Q. Wenn „thread not found“ erscheint, ist die Konversation dann gelöscht?
A. Nicht unbedingt. Der gespeicherte Verlauf kann lesbar sein, während die für das Senden nötige Konversation für die Ausführung nicht geladen ist. Andererseits kann auch der Speicherverweis oder die Datei selbst fehlerhaft sein. Deshalb prüfen Sie, ob sie sich tatsächlich lesen lässt.
Q. Ist notLoaded ein Fehler?
A. Der Zustand selbst ist normal. Er bedeutet, dass eine gespeicherte Konversation derzeit nicht für die Ausführung geladen ist. Problematisch wird er nur, wenn sie beim Fortsetzen nicht wieder aufgenommen wird und selbst eine kurze Antwort nicht abgeschlossen wird.
Q. Hilft ein Neustart immer?
A. Nicht immer. Es gibt Berichte, in denen ein vollständiger Neustart half (#30710), und Berichte, in denen Senden und Archivieren auch nach dem Neustart weiter fehlschlugen (#39179). In unserem Beispiel funktionierte das Senden nach dem Neuladen der Konversation wieder.
Q. Löst ein Update auf die neueste Version das Problem?
A. Stand 21. September 2026 haben wir keine korrigierte Version gefunden, die ausdrücklich angibt, dieses Symptom insgesamt zu beheben. Notieren Sie beim Aktualisieren die App-Versionen vor und nach dem Update sowie das Ergebnis. Die separat installierte CLI und das mit der App ausgelieferte Codex müssen nicht dieselbe Version haben.