THE ORB
Studio wird gestartet

Tote Coroutine kann nicht fortgesetzt werden

Etwas wollte eine Arbeit fortsetzen, die schon fertig war oder schon abgestürzt ist. Fast immer steht über dieser Zeile ein ECHTER Fehler.

groupsFür sich genommen nichtspersonDas kannst du beheben

Mach das zuerst

Scroll hoch und behebe den Fehler darüber; dieser verschwindet meist mit ihm.

bug_reportFüg lieber deine ganze Konsole ein

Was es bedeutet

Etwas wollte eine Coroutine fortsetzen, die schon fertig ist oder schon einen Fehler hatte. In FiveM meldet die Runtime damit fast immer eine Folgewirkung: Die Coroutine starb an einem Fehler in ihr, und das hier ist die ZWEITE Meldung.

Was es auslöst

Sortiert danach, wie oft es die Antwort ist.

  1. 1

    Ein früherer Fehler hat die Coroutine getötet

    Scroll in der Konsole nach oben. Darüber steht ein echter Fehler, und den gilt es zu beheben.

  2. 2

    Ein gespeicherter und zweimal aufgerufener Callback

    Ein oxmysql- oder ox_lib-Callback ein zweites Mal aufgerufen: Die erste Fortsetzung hat ihn beendet, die zweite findet ihn tot.

  3. 3

    In einem Handler warten, der schon zurückgekehrt ist

    MySQL.query.await in einem Callback, dessen Eltern schon fertig sind.

  4. 4

    Außerhalb eines Threads abgeben

    Wait() auf Dateiebene oder in einer gewöhnlichen Funktion, die aus einem Nicht-Thread-Kontext aufgerufen wird. FiveM meldet „attempt to yield from outside a coroutine".

Wie du erkennst, welcher deiner ist

Schau, was ÜBER dieser Zeile in der Konsole steht. Gibt es dort einen anderen Fehler, behebe zuerst den — dieser verschwindet meist mit. Ist das die einzige Meldung, gibst du irgendwo ab, wo es keine Coroutine gibt.

Wo du nachsehen musst

Die Spur unter dieser Meldung und der Fehler darüber.

Wie du es behebst

Alles, was wartet, muss in einem Thread stehen:

-- falsch: ein Wait auf Dateiebene
Wait(1000)

-- richtig
CreateThread(function()
    Wait(1000)
end)

Und Callbacks feuern einmal — sichere dich gegen einen zweiten Aufruf ab:

local done = false
someLib.request(function(result)
    if done then return end
    done = true
end)

Hängst du immer noch an deinem eigenen Code?

Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.

bug_reportServer Fixer öffnen

Für diese Art Fehler Script Optimizer liest das Script und repariert den Code dahinter.

Fehler, die mit diesem zusammen auftreten