diff --git a/src/slic3r/GUI/Jobs/UIThreadWorker.hpp b/src/slic3r/GUI/Jobs/UIThreadWorker.hpp index b8ac914fd7..610d205cf9 100644 --- a/src/slic3r/GUI/Jobs/UIThreadWorker.hpp +++ b/src/slic3r/GUI/Jobs/UIThreadWorker.hpp @@ -35,10 +35,14 @@ class UIThreadWorker : public Worker, private Job::Ctl { eptr= std::current_exception(); } - m_running = false; - job->finalize(m_canceled, eptr); + // Unhandled exceptions are rethrown without mercy. + if (eptr) + std::rethrow_exception(eptr); + + m_running = false; + m_canceled = false; } }