@Override
    protected Event doExecuteInternal(final RequestContext requestContext) {
        val currentEvent = requestContext.getCurrentEvent();
        LOGGER.debug("Located current event [{}]", currentEvent);

        val error = currentEvent.getAttributes().get(CasWebflowConstants.TRANSITION_ID_ERROR, Exception.class);
        if (error != null) {
            LOGGER.debug("Located error attribute [{}] with message [{}] from the current event", error.getClass(), error.getMessage());
            val event = handle(error, requestContext);
            LOGGER.debug("Final event id resolved from the error is [{}]", event);
            return event;
        }
        return error();
    }
Maps an authentication exception onto a state name.
Also sets an ERROR severity message in the message context.

@param exception      Authentication error to handle.
@param requestContext the spring  context
@return Name of next flow state to transition to or {@value CasWebflowExceptionCatalog#UNKNOWN}
core/cas-server-core-webflow-api/src/main/java/org/apereo/cas/web/flow/actions/AuthenticationExceptionHandlerAction.java