{"record":{"id":"f0fb869821aa3c47","repo":"apereo/cas","slug":"submitting-logout-response-to-failed-with-res","errorCode":null,"errorMessage":"Submitting logout response to [{}] failed with response [{}]","messagePattern":"Submitting logout response to \\[(.+?)\\] failed with response \\[(.+?)\\]","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"support/cas-server-support-pac4j-webflow/src/main/java/org/apereo/cas/web/flow/actions/logout/DelegatedAuthenticationIdentityProviderLogoutAction.java","lineNumber":61,"sourceCode":"            .orElseThrow(() -> new IllegalArgumentException(\"Unable to determine delegated client for \" + clientName));\n        LOGGER.debug(\"Received logout request from [{}]\", client.getName());\n\n        val clientCredential = WebUtils.getCredential(requestContext, ClientCredential.class);\n        if (clientCredential != null && HttpMethod.POST.matches(request.getMethod())) {\n            webContext.getRequestAttribute(SingleLogoutContinuation.class.getName(), SingleLogoutContinuation.class)\n                .stream()\n                .filter(continuation -> StringUtils.isNotBlank(continuation.getUrl()))\n                .findFirst()\n                .ifPresent(continuation -> {\n                    val exec = HttpExecutionRequest.builder()\n                        .method(continuation.getMethod())\n                        .url(continuation.getUrl())\n                        .parameters(continuation.getData())\n                        .build();\n                    LOGGER.debug(\"Sending delegated logout response to [{}]\", exec.getUrl());\n                    val logoutResponse = HttpUtils.execute(exec);\n                    FunctionUtils.doIf(logoutResponse == null || HttpStatus.valueOf(logoutResponse.getCode()).isError(),\n                        r -> LOGGER.warn(\"Submitting logout response to [{}] failed with response [{}]\", continuation.getUrl(), r)).accept(logoutResponse);\n                    request.removeAttribute(SingleLogoutContinuation.class.getName());\n                });\n        }\n        return new Event(this, CasWebflowConstants.TRANSITION_ID_PROCEED);\n    }\n}\n","sourceCodeStart":43,"sourceCodeEnd":68,"githubUrl":"https://github.com/apereo/cas/blob/e7288fc434b4f4505b8452e1a57e8fb3111bb863/support/cas-server-support-pac4j-webflow/src/main/java/org/apereo/cas/web/flow/actions/logout/DelegatedAuthenticationIdentityProviderLogoutAction.java#L43-L68","documentation":"CAS submitted the SLO logout response to the delegated IdP continuation URL and the HTTP call either returned null or an error status; this is only a logged warning, not a thrown exception. It means the back-channel logout of the provider session may not have completed.","triggerScenarios":"HttpUtils.execute returns null (network failure, bad URL) or the response code is 4xx/5xx when POSTing continuation.getData() to continuation.getUrl() in DelegatedAuthenticationIdentityProviderLogoutAction.","commonSituations":"IdP logout endpoint unreachable or behind firewall; expired/invalid relay state; IdP returns 400 for an already-invalidated session; TLS trust not configured for the IdP.","solutions":["Verify the IdP's logout/single-logout endpoint URL is reachable from the CAS server (curl the continuation URL)","Check network/TLS trust (import the IdP cert into the CAS truststore)","Confirm continuation data (relay state, SAML logout response) is valid and not expired","Treat as non-fatal if the IdP session was already terminated; otherwise enable debug logging to capture the response body"],"exampleFix":"null","handlingStrategy":"retry","validationCode":"// precheck: curl -I <idp-logout-url> from the CAS host to confirm reachability","typeGuard":null,"tryCatchPattern":"try { HttpUtils.execute(exec) } catch (Exception e) { LOGGER.warn(\"Logout continuation failed\", e); /* non-fatal */ }","preventionTips":["Monitor IdP logout endpoint health","Configure TLS trust for IdP certificates","Treat back-channel logout failures as alertable warnings"],"tags":["slo","logout","http","pac4j"],"backgroundTag":"http-request-failed","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"}