diff --git a/backend/web/login/login.py b/backend/web/login/login.py
index ffe67701f07b1b8ba529e90072a0a24cf4b745b1..3fa87921db8b44587b62e4b384a90ffdd71222a6 100644
--- a/backend/web/login/login.py
+++ b/backend/web/login/login.py
@@ -375,14 +375,24 @@ def consent():
     current_app.logger.info(f"{kratos_id} was granted access to {client_id}")
 
     # False positive: pylint: disable=no-member
-    return redirect(
-        consent_request.accept(
-            grant_scope=consent_request.requested_scope,
-            grant_access_token_audience=consent_request.requested_access_token_audience,
-            session=claims,
-        )
+    try:
+        redirectUrl = hydra_admin_api.accept_consent_request(
+            challenge,
+            accept_consent_request=AcceptConsentRequest(
+                grant_scope=consent_request.requested_scope,
+                grant_access_token_audience=consent_request.requested_access_token_audience,
+                session=ConsentRequestSession(**claims),
+            )
+        ).redirect_to
     )
-
+    except:
+        # If an unexpected error occurs, logout, hopefully that wipes the
+        # relevant cookies
+        current_app.logger.error('Fatal processing consent, redirect to logout:' + str(e))
+        return redirect("logout")
+    current_app.logger.info(f"Redirect to: {redirectUrl}")
+
+    return redirect(redirectUrl)
 
 @web.route("/status", methods=["GET", "POST"])
 def status():