diff --git a/src/linkahead/utils/linkahead_admin.py b/src/linkahead/utils/linkahead_admin.py
index 72a01b85c43823348821caefbd001e4a34cc4455..77ca5fbfe0dc4c5c36956bc6f3ad463335332daa 100755
--- a/src/linkahead/utils/linkahead_admin.py
+++ b/src/linkahead/utils/linkahead_admin.py
@@ -33,7 +33,7 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter
 
 import linkahead as db
 from linkahead import administration as admin
-from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError
+from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError, HTTPForbiddenError
 
 __all__ = []
 __version__ = 0.3
@@ -42,22 +42,35 @@ __updated__ = '2018-12-11'
 
 
 def do_update_role(args):
-    admin._update_role(name=args.role_name, description=args.role_description)
+    try:
+        admin._update_role(name=args.role_name, description=args.role_description)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot update role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_create_role(args):
-    admin._insert_role(name=args.role_name, description=args.role_description)
+    try:
+        admin._insert_role(name=args.role_name, description=args.role_description)
+    except (HTTPClientError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot create role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_retrieve_role(args):
     try:
         print(admin._retrieve_role(name=args.role_name))
-    except HTTPResourceNotFoundError:
-        print(f"Error: Role '{args.role_name}' does not exist.")
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot retrieve role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_delete_role(args):
-    admin._delete_role(name=args.role_name)
+    try:
+        admin._delete_role(name=args.role_name)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot delete role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_retrieve(args):
@@ -129,22 +142,25 @@ def do_create_user(args):
 
         if args.activate_user:
             do_activate_user(args)
-    except HTTPClientError as e:
-        print(e.msg)
+    except (HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot create user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_activate_user(args):
     try:
         admin._update_user(name=args.user_name, status="ACTIVE")
-    except HTTPClientError as e:
-        print(e.msg)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot activate user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_deactivate_user(args):
     try:
         admin._update_user(name=args.user_name, status="INACTIVE")
-    except HTTPClientError as e:
-        print(e.msg)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot deactivate user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_set_user_password(args):
@@ -154,66 +170,109 @@ def do_set_user_password(args):
         password = args.user_password
     try:
         admin._update_user(name=args.user_name, password=password)
-    except HTTPClientError as e:
-        print(e.msg)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot set password for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_add_user_roles(args):
-    roles = admin._get_roles(username=args.user_name, realm=None)
+    try:
+        roles = admin._get_roles(username=args.user_name, realm=None)
+    except (HTTPForbiddenError, HTTPResourceNotFoundError) as e:
+        print(f"Error: Cannot access roles for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
+        return
 
     for r in args.user_roles:
         roles.add(r)
-    admin._set_roles(username=args.user_name, roles=roles)
+    try:
+        admin._set_roles(username=args.user_name, roles=roles)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot add new roles for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_remove_user_roles(args):
-    roles = admin._get_roles(username=args.user_name, realm=None)
+    try:
+        roles = admin._get_roles(username=args.user_name, realm=None)
+    except (HTTPForbiddenError, HTTPResourceNotFoundError) as e:
+        print(f"Error: Cannot access roles for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
+        return
 
     for r in args.user_roles:
         if r in roles:
             roles.remove(r)
-    admin._set_roles(username=args.user_name, roles=roles)
+    try:
+        admin._set_roles(username=args.user_name, roles=roles)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot remove roles from user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_set_user_entity(args):
-    admin._update_user(name=args.user_name, entity=args.user_entity)
+    try:
+        admin._update_user(name=args.user_name, entity=args.user_entity)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot set entity for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_reset_user_entity(args):
-    admin._update_user(name=args.user_name, entity="")
+    try:
+        admin._update_user(name=args.user_name, entity="")
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot remove entity for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_set_user_email(args):
-    admin._update_user(name=args.user_name, email=args.user_email)
+    try:
+        admin._update_user(name=args.user_name, email=args.user_email)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
+        print(f"Error: Cannot set email for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_retrieve_user(args):
     try:
         print(admin._retrieve_user(name=args.user_name))
-    except HTTPResourceNotFoundError:
-        print(f"Error: User '{args.user_name}' does not exist.")
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot retrieve user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_delete_user(args):
-    admin._delete_user(name=args.user_name)
+    try:
+        admin._delete_user(name=args.user_name)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot delete user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_retrieve_user_roles(args):
     try:
         print(admin._get_roles(username=args.user_name))
-    except HTTPResourceNotFoundError:
-        print(f"Error: User '{args.user_name}' does not exist.")
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot retrieve roles for user '{args.user_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_retrieve_role_permissions(args):
     try:
         print(admin._get_permissions(role=args.role_name))
-    except HTTPResourceNotFoundError:
-        print(f"Error: Role '{args.role_name}' does not exist.")
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot retrieve permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_grant_role_permissions(args):
-    perms = admin._get_permissions(args.role_name)
+    try:
+        perms = admin._get_permissions(role=args.role_name)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot access permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
+        return
 
     for p in args.role_permissions:
         g = admin.PermissionRule(
@@ -227,11 +286,20 @@ def do_grant_role_permissions(args):
         if d in perms:
             perms.remove(d)
         perms.add(g)
-    admin._set_permissions(role=args.role_name, permission_rules=perms)
+    try:
+        admin._set_permissions(role=args.role_name, permission_rules=perms)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot set permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_revoke_role_permissions(args):
-    perms = admin._get_permissions(args.role_name)
+    try:
+        perms = admin._get_permissions(role=args.role_name)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot access permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
+        return
 
     for p in args.role_permissions:
         g = admin.PermissionRule(
@@ -244,11 +312,20 @@ def do_revoke_role_permissions(args):
 
         if d in perms:
             perms.remove(d)
-    admin._set_permissions(role=args.role_name, permission_rules=perms)
+    try:
+        admin._set_permissions(role=args.role_name, permission_rules=perms)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot revoke permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_deny_role_permissions(args):
-    perms = admin._get_permissions(args.role_name)
+    try:
+        perms = admin._get_permissions(role=args.role_name)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot access permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
+        return
 
     for p in args.role_permissions:
         g = admin.PermissionRule(
@@ -262,7 +339,11 @@ def do_deny_role_permissions(args):
         if d in perms:
             perms.remove(d)
         perms.add(d)
-    admin._set_permissions(role=args.role_name, permission_rules=perms)
+    try:
+        admin._set_permissions(role=args.role_name, permission_rules=perms)
+    except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
+        print(f"Error: Cannot deny permissions for role '{args.role_name}', "
+              f"reason: '{e.msg}'")
 
 
 def do_retrieve_entity_acl(args):