{"record":{"id":"e2ba3b57747640ee","repo":"apereo/cas","slug":"no-claims-are-available-to-process","errorCode":null,"errorMessage":"No claims are available to process","messagePattern":"No claims are available to process","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"support/cas-server-support-ws-sts-api/src/main/java/org/apereo/cas/support/claims/WrappingSecurityTokenServiceClaimsHandler.java","lineNumber":51,"sourceCode":"    @Override\n    public List<String> getSupportedClaimTypes() {\n        return WSFederationClaims.ALL_CLAIMS.stream()\n            .map(WSFederationClaims::getUri)\n            .collect(Collectors.toList());\n    }\n\n    @Override\n    public ProcessedClaimCollection retrieveClaimValues(final ClaimCollection claims, final ClaimsParameters parameters) {\n        if (parameters.getRealm() == null || !parameters.getRealm().equalsIgnoreCase(this.handlerRealm)) {\n            LOGGER.warn(\"Realm [{}] doesn't match with configured realm [{}]\", parameters.getRealm(), this.handlerRealm);\n            return new ProcessedClaimCollection();\n        }\n        if (parameters.getPrincipal() == null) {\n            LOGGER.warn(\"No principal could be identified in the claim parameters request\");\n            return new ProcessedClaimCollection();\n        }\n        if (claims == null || claims.isEmpty()) {\n            LOGGER.warn(\"No claims are available to process\");\n            return new ProcessedClaimCollection();\n        }\n        val claimCollection = new ProcessedClaimCollection();\n        claims.stream().map(c -> createProcessedClaim(c, parameters)).forEach(claimCollection::add);\n        return claimCollection;\n    }\n\n    /**\n     * Create processed claim processed claim.\n     *\n     * @param requestClaim the request claim\n     * @param parameters   the parameters\n     * @return the processed claim\n     */\n    protected ProcessedClaim createProcessedClaim(final Claim requestClaim, final ClaimsParameters parameters) {\n        val claim = new ProcessedClaim();\n        claim.setClaimType(createProcessedClaimType(requestClaim, parameters));\n        claim.setIssuer(this.issuer);","sourceCodeStart":33,"sourceCodeEnd":69,"githubUrl":"https://github.com/apereo/cas/blob/e7288fc434b4f4505b8452e1a57e8fb3111bb863/support/cas-server-support-ws-sts-api/src/main/java/org/apereo/cas/support/claims/WrappingSecurityTokenServiceClaimsHandler.java#L33-L69","documentation":"retrieveClaimValues returns an empty ProcessedClaimCollection with this warning when the requested ClaimCollection is null or has no claims. There is nothing to resolve, so the handler short-circuits rather than returning an empty-but-valid collection silently.","triggerScenarios":"The RST (RequestSecurityToken) carried an empty or missing ClaimsType section, or the caller passed null/empty claims into the handler.","commonSituations":"Client requests a token without specifying required claims while server-side required-claims filtering removes everything; misconfigured applied scope/claim mappings; client SDK sends empty wst:Claims element.","solutions":["Configure the client/claim request to include the claims the relying party needs (populate wst:Claims / ClaimsCollection).","Check any claim-filtering or required-claims configuration that might strip all claims before the handler runs.","If empty claims are legitimately allowed, ignore this warning — behavior (empty collection) is correct."],"exampleFix":"// before\n// RST with empty <wst:Claims/>\n// after\n< rightful claims >\n<wst:Claims Dialect=\"...\">\n  <wsid:ClaimType Uri=\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\"/>\n</wst:Claims>","handlingStrategy":"validation","validationCode":"if (claims == null || claims.isEmpty()) {\n    throw new IllegalArgumentException(\"No claims requested in the RST\");\n}","typeGuard":"boolean hasRequestedClaims(ClaimCollection claims) {\n    return claims != null && !claims.isEmpty();\n}","tryCatchPattern":null,"preventionTips":["Configure clients to always include required claim types in wst:Claims.","Review any claim filtering that could empty the collection."],"tags":["sts","claims","empty-input"],"backgroundTag":"empty-required-field","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"}