diff --git a/applications/subscriberPortal/README.md b/applications/subscriberPortal/README.md
index 7144646..f414994 100644
--- a/applications/subscriberPortal/README.md
+++ b/applications/subscriberPortal/README.md
@@ -28,7 +28,9 @@
 
 _All commands in this section refers to `applications/subscriberPortal`_
 
-_Note that NodeJs is required to run this demo_To open this demo:
+_Note that NodeJs and Bower are required to run this demo_
+
+To open this demo:
 
  - open `env/default.js` and replace `host` with the URL of your XOS installation.
  - from the portal root execute `npm start`
diff --git a/applications/subscriberPortal/bs-config.js b/applications/subscriberPortal/bs-config.js
index 4acb4c6..f608075 100644
--- a/applications/subscriberPortal/bs-config.js
+++ b/applications/subscriberPortal/bs-config.js
@@ -51,8 +51,10 @@
         req.url.indexOf('/xoslib/') !== -1 ||
         req.url.indexOf('/hpcapi/') !== -1
       ){
+        console.log(req.headers)
         if(req.headers['X-CSRFToken']){
           req.headers['x-csrftoken'] = req.headers['x-csrftoken'];
+          req.headers.cookie = `xoscsrftoken=${req.headers['x-csrftoken']}; xossessionid=${req.headers['sessionid']}`;
         }
         proxy.web(req, res);
       }
diff --git a/applications/subscriberPortal/src/app/fw/services/rest.js b/applications/subscriberPortal/src/app/fw/services/rest.js
index db35617..e5ea7e0 100644
--- a/applications/subscriberPortal/src/app/fw/services/rest.js
+++ b/applications/subscriberPortal/src/app/fw/services/rest.js
@@ -22,6 +22,7 @@
     return {
       request: function(request){
         request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
+        request.headers['sessionId'] = $cookies.get('sessionid');
         return request;
       }
     };
@@ -38,11 +39,13 @@
         $cookies.put('sessionid', res.data.xossessionid);
         user = JSON.parse(res.data.user);
         return $http.get(cordConfig.url + '/xos/tenantrootprivileges?user=' + user.id);
-      }).then(function(subscriber){
-          console.log(subscriber);
-          deferred.resolve(user);
+      })
+      .then(function(subscriber){
+        console.log(subscriber);
+        deferred.resolve(user);
       })
       .catch(function(e){
+        deferred.reject(e);
         throw new Error(e);
       });
 
diff --git a/applications/subscriberPortal/src/app/view/common/common.css b/applications/subscriberPortal/src/app/view/common/common.css
index 5ae154b..800fe24 100644
--- a/applications/subscriberPortal/src/app/view/common/common.css
+++ b/applications/subscriberPortal/src/app/view/common/common.css
@@ -34,7 +34,7 @@
 
 h1, h2, h3, h4, h5, h6,
 p, a, li, th, td,
-select, input, option, label {
+select, input, option, label, div {
     font-family: sans-serif, "Droid Sans", "Lucida Grande", Arial, Helvetica;
     color: #3C3C3C;
 }
diff --git a/applications/subscriberPortal/src/app/view/login/login.css b/applications/subscriberPortal/src/app/view/login/login.css
index f7d5f67..b4275c5 100644
--- a/applications/subscriberPortal/src/app/view/login/login.css
+++ b/applications/subscriberPortal/src/app/view/login/login.css
@@ -73,6 +73,20 @@
     border-radius: 1px;
     position: absolute;
 }
+
+#login-form .login-error{
+    background: red;
+    border: 2px solid darkred;
+    color: white;
+    position: absolute;
+    height: 40px;
+    width: 230px;
+    padding: 0 5px;
+    border-radius: 1px;
+    top: 70px;
+    font-size: 10px;
+}
+
 #login-form input[type="text"] {
     top: -90px;
 }
diff --git a/applications/subscriberPortal/src/app/view/login/login.html b/applications/subscriberPortal/src/app/view/login/login.html
index 19c5940..6359cce 100644
--- a/applications/subscriberPortal/src/app/view/login/login.html
+++ b/applications/subscriberPortal/src/app/view/login/login.html
@@ -4,10 +4,14 @@
         <div id="login-form">
             <div class="outline"></div>
             <h2>Subscriber Portal</h2>
-            <form>
+            <form ng-submit="login()">
                 <input ng-model="email" type="text" placeholder="email" required>
                 <input ng-model="password" type="password" placeholder="password" required>
                 <input ng-click="login()" type="button" value="Log In">
+                <div class="login-error" ng-show="error">
+                    Sorry, your login failed.
+                    Please try again.
+                </div>
             </form>
         </div>
     </div>
diff --git a/applications/subscriberPortal/src/app/view/login/login.js b/applications/subscriberPortal/src/app/view/login/login.js
index c902480..77ef724 100644
--- a/applications/subscriberPortal/src/app/view/login/login.js
+++ b/applications/subscriberPortal/src/app/view/login/login.js
@@ -29,6 +29,9 @@
           User.login($scope.email, $scope.password)
           .then(function(user){
             $location.url('/home');
+          })
+          .catch(function(e){
+            $scope.error = true;
           });
 
           $scope.shared.login = $scope.email;
diff --git a/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js b/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js
index 283e90d..025813c 100644
--- a/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js
+++ b/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js
@@ -1,18 +1,18 @@
 (function() {
-    'use strict';
+  'use strict';
 
-    angular
-        .module('xos.helpers')
-        .factory('SetCSRFToken', setCSRFToken);
+  angular
+    .module('xos.helpers')
+    .factory('SetCSRFToken', setCSRFToken);
 
-    function setCSRFToken($cookies) {
-      return {
-        request: function(request){
-          if(request.method !== 'GET'){
-            request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
-          }
-          return request;
+  function setCSRFToken($cookies) {
+    return {
+      request: function(request){
+        if(request.method !== 'GET'){
+          request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
         }
-      };
-    }
+        return request;
+      }
+    };
+  }
 })();
