Quick answer: Godot 4 ResourceLoader.load_threaded_get throwing 'tree exited' on app shutdown? Worker thread completes after main quit - check tree validity before processing result.
Quit game during loading screen. Error log: tree exited during resource load.
Check tree validity
if !get_tree() or get_tree().is_quitting():
returnSkip work if tree is gone. Avoids the exception.
Cancel pending loads on quit
Track in-flight loads; cancel on tree_exiting. Resources aren't wasted; no spurious errors.
Or use try/except
Wrap the get call; treat failure as 'graceful cancel'. Suppresses noise without addressing the root.
“Async work outlives the main tree. Cleanup paths handle the overlap.”
Async APIs need cancellation paths. The exception is the symptom; lack of cancellation is the cause.