não dá para retomar uma corrotina morta
Alguma coisa tentou continuar um trabalho que já tinha terminado ou já tinha caído. Quase sempre tem um erro DE VERDADE acima deste.
Faça isto primeiro
Suba e conserte o erro de cima; este costuma ir junto.
O que significa
Alguma coisa tentou continuar uma corrotina que já terminou ou que já deu erro. No FiveM isso quase sempre é o runtime informando um efeito em cadeia: a corrotina morreu por um erro que houve dentro dela, e esta é a SEGUNDA mensagem.
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
Um erro anterior matou a corrotina
Suba no console. Existe um erro de verdade acima deste, e é ele que precisa ser consertado.
- 2
Um callback guardado e chamado duas vezes
Um callback do oxmysql ou do ox_lib invocado uma segunda vez: a primeira retomada terminou ele, a segunda encontra ele morto.
- 3
Esperar dentro de um handler que já retornou
MySQL.query.awaitdentro de um callback cujo pai já terminou. - 4
Ceder o controle fora de uma thread
Wait()em nível de arquivo, ou dentro de uma função normal chamada de um contexto que não é uma thread. O FiveM informa «attempt to yield from outside a coroutine».
Como saber qual é o seu
Olhe o que tem ACIMA desta linha no console. Se houver qualquer outro erro, conserte aquele primeiro e este normalmente some junto. Se esta é a única mensagem, você está cedendo o controle em algum lugar onde não há corrotina.
Onde olhar
O rastro que está abaixo desta mensagem, e o erro que está acima.
Como consertar
Tudo o que espera precisa estar dentro de uma thread:
-- errado: um Wait em nível de arquivo
Wait(1000)
-- certo
CreateThread(function()
Wait(1000)
end)E os callbacks disparam uma vez só: proteja-se de uma segunda chamada:
local done = false
someLib.request(function(result)
if done then return end
done = true
end)Ainda travado no seu próprio código?
Esta página é o que esse erro costuma significar. Cole o seu console no Server Fixer e ele vai ordenar tudo o que estiver lá e te dizer o que fazer primeiro; e se você preferir não mexer, o ORBIE consegue consertar o script e te devolver o resource pronto para soltar.
bug_reportAbrir o Server FixerPara esse tipo de erro, o Script Optimizer lê o script e conserta o código por trás disso.