diff --git a/src/config/logger.js b/src/config/logger.js
index df49409..dfec0dc 100644
--- a/src/config/logger.js
+++ b/src/config/logger.js
@@ -4,7 +4,7 @@
   const winston = require('winston');
   const fs = require('fs');
   const path = require('path');
-  const level = process.env.LOG_LEVEL || 'warn';
+  const level = process.env.LOG_LEVEL || 'debug';
   winston.level = level;
 
   const logFile = path.join(__dirname, '../../logs/xos-nb-rest');
diff --git a/src/controllers/redis.js b/src/controllers/redis.js
index 0277cab..0bcebe3 100644
--- a/src/controllers/redis.js
+++ b/src/controllers/redis.js
@@ -25,7 +25,7 @@
   });
 
   client.on('message', function (channel, message) {
-    logger.log('debug', 'sub channel ' + channel + ': ' + message);
+    logger.log('warn', 'sub channel ' + channel + ': ' + message);
 
     let msg;
     try {
diff --git a/src/routes/core_proxy.js b/src/routes/core_proxy.js
index 0290347..6da2eef 100644
--- a/src/routes/core_proxy.js
+++ b/src/routes/core_proxy.js
@@ -8,6 +8,14 @@
 
     const proxyRequest = (req, res) => {
 
+      // debugging helper
+      if(!req.headers['x-csrftoken']){
+        logger.log('warn', `csrftoken is missing and is required for authentication`);
+      }
+      if(!req.headers['x-sessionid']){
+        logger.log('warn', `Session id is missing and is required for authentication`);
+      }
+
       const config = require('../config/config.js').xos;
       // pick the correct method from superAgent
       const makeReq = request[req.method.toLowerCase()];
@@ -24,7 +32,7 @@
       // extend with auth info
       sentReq = sentReq
         .set('x-csrftoken', req.headers['x-csrftoken'] || null)
-        .set('cookie', req.headers.cookie || null)
+        .set('cookie', `xossessionid=${req.headers['x-sessionid']}` || null)
 
       // handle response
       sentReq
diff --git a/src/server.js b/src/server.js
index da541ce..c132cab 100644
--- a/src/server.js
+++ b/src/server.js
@@ -20,15 +20,15 @@
     res.send('Hello world');
   });
 
-  const startServer = () => {
+  const startServer = (port) => {
 
     // if is running just return it
     if(app.server) {
       return app.server;
     }
 
-    const server =  app.listen(config.port, function() {
-      logger.info(`Express is listening to http://localhost:${config.port}`);
+    const server =  app.listen(port || config.port, function() {
+      logger.info(`Express is listening to http://localhost:${port || config.port}`);
 
       // once server is ready setup WebSocket
       socketIo.create(server);
