{"record":{"id":"fe8f6bb1b6259dc1","repo":"apereo/cas","slug":"the-resulting-authentication-attempt-has-not-recor","errorCode":null,"errorMessage":"The resulting authentication attempt has not recorded any successes or failures. This typically means that no authentication handler could be found to support the authentication request or the credential types provided. The authentication handlers that were examined are: [{}]","messagePattern":"The resulting authentication attempt has not recorded any successes or failures\\. This typically means that no authentication handler could be found to support the authentication request or the credential types provided\\. The authentication handlers that were examined are: \\[(.+?)\\]","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/DefaultAuthenticationManager.java","lineNumber":277,"sourceCode":"            }\n            evaluateFinalAuthentication(authenticationBuilder, transaction, handlerSet);\n            return authenticationBuilder;\n        } finally {\n            for (val handler : handlerSet) {\n                if (handler.isDisposable() && handler instanceof final DisposableBean db) {\n                    db.destroy();\n                }\n            }\n        }\n    }\n\n    protected void evaluateFinalAuthentication(final AuthenticationBuilder builder,\n                                               final AuthenticationTransaction transaction,\n                                               final Set<AuthenticationHandler> authenticationHandlers) throws Throwable {\n        val clientInfo = ClientInfoHolder.getClientInfo();\n        if (builder.getSuccesses().isEmpty()) {\n            if (builder.getFailures().isEmpty()) {\n                LOGGER.warn(\"The resulting authentication attempt has not recorded any successes or failures. This typically means that no authentication handler \"\n                    + \"could be found to support the authentication request or the credential types provided. The authentication handlers that were \"\n                    + \"examined are: [{}]\", authenticationHandlers.stream().map(AuthenticationHandler::getName).collect(Collectors.joining(\", \")));\n            }\n            publishEvent(new CasAuthenticationTransactionFailureEvent(this, builder.getFailures(), transaction.getCredentials(), clientInfo));\n            throw createAuthenticationException(builder);\n        }\n\n        val authentication = builder.build();\n        val executionResult = evaluateAuthenticationPolicies(authentication, transaction, authenticationHandlers);\n        if (!executionResult.isSuccess()) {\n            executionResult.getFailures().forEach(e -> handleAuthenticationException(e, e.getClass().getSimpleName(), builder));\n            publishEvent(new CasAuthenticationPolicyFailureEvent(this, builder.getFailures(), transaction, authentication, clientInfo));\n            throw createAuthenticationException(builder);\n        }\n    }\n\n    private static AuthenticationException createAuthenticationException(\n        final AuthenticationBuilder builder) {","sourceCodeStart":259,"sourceCodeEnd":295,"githubUrl":"https://github.com/apereo/cas/blob/e7288fc434b4f4505b8452e1a57e8fb3111bb863/core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/DefaultAuthenticationManager.java#L259-L295","documentation":"DefaultAuthenticationManager.evaluateFinalAuthentication logs this when the AuthenticationBuilder has neither successes nor failures after running the handler chain: no handler examined supported the credential(s) in the transaction. CAS then publishes a transaction failure event and throws an AuthenticationException.","triggerScenarios":"Authentication transaction presented a credential type that none of the registered authentication handlers supports(); the handler set (filtered per service or registered handlers) is empty or all handlers failed supports() checks.","commonSituations":"Handler not enabled for the service's registered authentication policy; credential class changed between CAS versions so the handler no longer supports it; relevant support module (e.g. cas-server-support-ldap) not on the classpath; typo in service policy handler names.","solutions":["Confirm the handler for the credential type is registered and its support module is a build dependency.","Check the service's authentication policy (RegisteredServiceAuthenticationPolicy) is not excluding all handlers.","Verify the submitted credential type matches what the handler supports (e.g. UsernamePasswordCredential vs. token credentials).","Enable debug logging for org.apereo.cas.authentication to trace which handlers were examined and why they were skipped."],"exampleFix":"// before: no LDAP handler registered, only file-based\n// after: add the LDAP authentication handler\n@Bean\npublic AuthenticationHandler ldapAuthenticationHandler(...) {\n    val h = new LdapAuthenticationHandler(ldapConnection, ...);\n    h.setOrder(0);\n    return h;\n}","handlingStrategy":"validation","validationCode":"boolean anySupports = handlers.stream().anyMatch(h -> h.supports(credential));\nif (!anySupports) {\n    throw new IllegalStateException(\"No handler supports \" + credential.getClass().getSimpleName());\n}","typeGuard":null,"tryCatchPattern":"try {\n    authenticationManager.authenticate(transaction);\n} catch (AuthenticationException e) {\n    LOGGER.error(\"No handler examined supported the credential: {}\", e.getHandlerErrors(), e);\n}","preventionTips":["Confirm every credential type in your flows has a registered, on-classpath handler.","Review service-level authentication policies after each services-registry change."],"tags":["authentication","handler-unsupported-credential","misconfiguration"],"backgroundTag":"unsupported-operation","analyzedSha":"e7288fc434b4f4505b8452e1a57e8fb3111bb863","analyzedAt":"2026-09-08T15:39:16.015Z","contentChangedAt":"2026-09-08T15:39:16.015Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}