diff --git a/apps/EchoServerCallback.cpp b/apps/EchoServerCallback.cpp
index b6b6a29eff2f8f4b24596743119d05549ed9f5c7..c5b1eff0697826083ded540e602a95a3b83e74f9 100644
--- a/apps/EchoServerCallback.cpp
+++ b/apps/EchoServerCallback.cpp
@@ -3,7 +3,6 @@
 #include <sys/socket.h>
 
 #include <array>
-#include <cerrno>
 #include <cstdint>
 #include <cstdlib>
 #include <cstring>
@@ -41,7 +40,7 @@ class Client {
 
 	void onSend(int32_t res) {
 		if (unlikely(res < 0)) {
-			LOGE("server send failed: " << strerror(errno));
+			LOGE("server send failed: " << strerror(-res));
 			emper::io::closeAndForget(sockfd);
 			return;
 		}
@@ -68,7 +67,7 @@ class Client {
 		if (unlikely(res <= 0)) {
 			// socket was shutdown
 			if (res < 0) {
-				LOGE("server read failed:" << strerror(errno));
+				LOGE("server read failed:" << strerror(-res));
 			}
 
 			emper::io::closeAndForget(sockfd);