diff --git a/src/server.cpp b/src/server.cpp
index 4e955e40a410b8044959cdd73ef0021aee37d069..35405851fa85260240b44fe41f0de61c4a98de7f 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -479,13 +479,10 @@ void Server::step(float dtime)
 		JMutexAutoLock lock(m_step_dtime_mutex);
 		m_step_dtime += dtime;
 	}
-	// Assert if fatal error occurred in thread
+	// Throw if fatal error occurred in thread
 	std::string async_err = m_async_fatal_error.get();
-	if(async_err != "") {
-		errorstream << "UNRECOVERABLE error occurred. Stopping server. "
-				<< "Please fix the following error:" << std::endl
-				<< async_err << std::endl;
-		assert(false);
+	if(async_err != ""){
+		throw ServerError(async_err);
 	}
 }