diff --git a/emper/io/Future.hpp b/emper/io/Future.hpp
index 3cda8c91ad9f13bfa3e0a099c1ed6f1c97a4a01b..463cad7bc90fa2dc82fa2566f9ee5420a5d7a3c9 100644
--- a/emper/io/Future.hpp
+++ b/emper/io/Future.hpp
@@ -6,6 +6,7 @@
 #include <sys/socket.h>	 // for socklen_t
 #include <sys/types.h>	 // for ssize_t
 
+#include <cassert>
 #include <cstddef>	// for size_t
 #include <cstdint>	// for int32_t, uint8_t
 #include <cstdlib>	// for abort
@@ -93,6 +94,7 @@ class Future : public Logger<LogSubsystem::IO> {
 	virtual void prepareSqe(io_uring_sqe* sqe) = 0;
 
 	void setCompletion(int32_t res) {
+		assert(!state.completed);
 		LOGD("Complete " << this);
 		returnValue = res;
 		state.completed = true;