Я не уверен в ответе, но я столкнулся с чем-то вроде вашего вопроса. ExceptionHandler работает после http-фильтров, поэтому, возможно, исключение Keycloak выбрасывает в его фильтр, прежде чем запрос можно будет обработать с помощью вашего ExceptionHandler. Таким образом, вы можете отслеживать все журналы, чтобы увидеть, откуда возникло исключение. Надеюсь, это вам поможет