diff --git a/authentik/stages/authenticator_validate/stage.py b/authentik/stages/authenticator_validate/stage.py index b16b8d340..d30ff1ad2 100644 --- a/authentik/stages/authenticator_validate/stage.py +++ b/authentik/stages/authenticator_validate/stage.py @@ -196,7 +196,10 @@ class AuthenticatorValidateStageView(ChallengeStageView): return super().get(request, *args, **kwargs) def get_challenge(self) -> AuthenticatorValidationChallenge: - challenges = self.request.session["device_challenges"] + challenges = self.request.session.get("device_challenges") + if not challenges: + LOGGER.debug("Authenticator Validation stage ran without challenges") + return self.executor.stage_invalid() return AuthenticatorValidationChallenge( data={ "type": ChallengeTypes.NATIVE.value,