diff --git a/src/net/listen.c b/src/net/listen.c
index aabd69127be37a0410fea0372ee42b9fb5f362e5..762bf375c588103978d455f08b093ffac24e4b3b 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -1159,7 +1159,8 @@ void
 lkt_listen(struct lkt_state *srv)
 {
     int fds_max_config = 16; /* Default value */
-    assert(database_config_get(srv->db, "server", "max_clients", &fds_max_config));
+    if (!database_config_get(srv->db, "server", "max_clients", &fds_max_config))
+        LOG_FATAL("Failed to get the 'server:max_client' field from the configuration");
 
     srv->fds_max = fds_max_config;
     srv->fds     = LKT_ALLOC_STRUCT_ARRAY(pollfd, srv->fds_max);
@@ -1199,7 +1200,7 @@ lkt_listen(struct lkt_state *srv)
     init_socket_func init_sock = is_unix_socket ? init_listening_socket_unix : init_listening_socket_net;
 
     if ((srv->fds[0].fd = init_sock(srv->host, srv->port)) < 0)
-        return;
+        LOG_FATAL("Failed to init socket: %s:%s", srv->host, srv->port);
     if (is_unix_socket)
         init_permission_socket_unix(srv->host, perms);
 
@@ -1213,10 +1214,16 @@ lkt_listen(struct lkt_state *srv)
     /* Listen */
     for (;;) {
         handle_signals(srv);
-        if (handle_network_events(srv) < 0)
+        if (handle_network_events(srv) < 0) {
+            LOG_ERROR("LISTEN", "Failed to handle_network_events");
             break;
-        if (handle_idle_events(srv) < 0)
+        }
+        if (handle_idle_events(srv) < 0) {
+            LOG_ERROR("LISTEN", "Failed to handle_idle_events");
             break;
+        }
         handle_queue_events(srv);
     }
+
+    LOG_FATAL("Infinit event loop break, should not happen");
 }