diff --git a/emper/io/SubmitActor.cpp b/emper/io/SubmitActor.cpp
index 722ad23ea4d6594c6f5e79e681c8299ded502445..f1606b84a5c355f7417aa75cde3d91c69fc2e9df 100644
--- a/emper/io/SubmitActor.cpp
+++ b/emper/io/SubmitActor.cpp
@@ -72,7 +72,8 @@ void SubmitActor::receive(Future* future) {
 	// req1 -> invalid_req -> req3
 	// will submit only 2 instead of all 3 prepared sqes
 	// See: https://github.com/axboe/liburing/issues/186
-	if (unlikely(static_cast<unsigned>(submitted) < prepared)) {
+	if (unlikely(static_cast<unsigned>(submitted) < prepared) &&
+			emper::IO_MUST_INVALIDATE_BROKEN_CHAIN) {
 		io.cancelUnsubmittedChainParts<CallerEnvironment::EMPER>(*future);
 	}