diff --git a/src/libs/app.js b/src/libs/app.js
index 18b46cf3f195879ce25d1edf2bcaa39a08afb6f3..d0f452ab3b188297471416019e478b5d64c1d2b6 100644
--- a/src/libs/app.js
+++ b/src/libs/app.js
@@ -37,16 +37,17 @@ app.use((req, res, next) => {
     req.sql = squel.select();
     next();
 });
+// Mounts all API routes under /api/v1
 app.use('/api/v1', api);
 
 // Catch 404 and forward to error handler
 app.use((req, res, next) => {
     res.status(404);
     log.error('%s %d %s', req.method, res.statusCode, req.url);
-    res.json({ error: 'Not found' }).end();
+    res.json({ error: 'Error 404: Page not found' }).end();
 });
 
-// Error handlers
+// Express' default error handler
 app.use((err, req, res, next) => {
     res.status(err.status || 500);
     log.error('%s %d %s', req.method, res.statusCode, err.message);
diff --git a/src/libs/db/query_exec.js b/src/libs/db/query_exec.js
index 71ae6d9824ac304eb5fd4e4d0e122b16d8d159a2..70456d8ef73868108d3db58b044508700884ebe9 100644
--- a/src/libs/db/query_exec.js
+++ b/src/libs/db/query_exec.js
@@ -19,26 +19,23 @@ function execSqlQuery(sqlQuery, sqlQueryParams = []) {
     log.debug(`Executing SQL query '${sqlQuery}' with params '${sqlQueryParams}'`);
     return new Promise((resolve, reject) => {
         // Prepare statement
-        conn.prepare(sqlQuery, true).then(
-            (dbQuery) => {
-                // Execute query
-                dbQuery.exec(sqlQueryParams).then(
-                    // Success
-                    (dbResult) => {
-                        log.debug(`Query result: ${dbResult.data}`);
-                        log.debug(dbResult.data);
-                        resolve(dbResult.data);
-                    },
-                    // Error
-                    (dbError) => {
-                        log.error(`SQL query execution error: ${dbError.message}`);
-                        reject(new Error(dbError.message));
-                    }
-                );
-                // Release resources allocated for prepared statement
-                conn.release();
-            }
-        );
+        conn.prepare(sqlQuery, true).then((dbQuery) => {
+            // Execute query
+            dbQuery.exec(sqlQueryParams).then((dbResult) => {
+                log.debug(`Query result: ${dbResult.data}`);
+                // release resources allocated for the prepared statement
+                dbQuery.release();
+                resolve(dbResult.data);
+            }).catch((queryError) => {
+                log.error(`SQL query execution error: ${queryError.message}`);
+                // release resources allocated for the prepared statement
+                dbQuery.release();
+                reject(new Error(queryError.message));
+            });
+        }).catch((prepError) => {
+            log.error(`SQL prepared statement error: ${prepError.message}`);
+            reject(new Error(prepError.message));
+        });
     });
 }
 
diff --git a/src/libs/middlewares/query.js b/src/libs/middlewares/query.js
index 70a9aab689b5bf1c3827af59b09594d7a3ab787a..42b7b7df784de6f35e18c2fed7047ee56a5b4949 100644
--- a/src/libs/middlewares/query.js
+++ b/src/libs/middlewares/query.js
@@ -9,10 +9,13 @@ function query(req, res, next) {
     execQuery(sql.text, sql.values).then((result) => {
         log.debug(result);
         req.result = result;
-        if(result.length === 0) next({status: 404, message: 'Not Found'});
+        if (result.length === 0) {
+            next({status: 404, message: 'Not Found'});
+        }
         next();
     }, (error) => {
-        next(error);
+        log.error(error.stack);
+        next(new Error('Request could not be satisfied due to a database error.'));
     });
 }