diff --git a/consent_provider/app.py b/consent_provider/app.py
index 40d9de2440894150a177ebbe77407796638ff8f9..0e17b7bb39634b711655f154ee978e84ec0bf856 100644
--- a/consent_provider/app.py
+++ b/consent_provider/app.py
@@ -2,8 +2,7 @@ from flask import abort, Flask, redirect, request
 from flask.views import View
 from os import urandom, environ
 from hydra_client import HydraAdmin
-from db import User
-import urllib
+from db import User, BackendConnectionError
 
 HYDRA_ADMIN_URL = environ['HYDRA_ADMIN_URL']
 
@@ -20,10 +19,10 @@ def home():
     username = consent_request.subject
     try:
         user = User(username)
-    except urllib.error.HTTPError as e:
+    except BackendConnectionError as error:
         # TODO: replace with propper logging via logger
         print("Retrieving user object from GraphQL server failed")
-        print(e)
+        print(error)
         return redirect(consent_request.reject(
             "Permission denied",
             error_description="Login request was denied due to an internal server error"))
diff --git a/consent_provider/db.py b/consent_provider/db.py
index 6e9f0206e37cd405539e29e77e4eaf0e6399d68a..b0302f7a2fcaa0ae9623c78e0a57786a5f90d095 100644
--- a/consent_provider/db.py
+++ b/consent_provider/db.py
@@ -13,8 +13,11 @@ class User():
         self.username = username
         try:
             self._load_remote_user_info()
-        except urllib.error.HTTPError as e:
-            raise e
+        except urllib.error.HTTPError as error:
+            raise BackendConnectionError(
+                error.code,
+                error.headers,
+                ("Error during retrieval of userdata - " + error.reason))
 
     def _load_remote_user_info(self):
         querystring = '''{{
@@ -57,3 +60,17 @@ class User():
                 "email" : self.email,
                 "picture": ""}
         }
+
+
+class BackendConnectionError(Exception):
+    """Raised when requests to the backend server fail
+
+    Attributes:
+        code -- http response code
+        headers -- http response headers
+        reason -- reson for the error
+    """
+    def __init__(self, code, headers, reason):
+        self.code = code
+        self.headers = headers
+        self.reaseon = reason