{"record":{"id":"76e4a9bf775d14b5","repo":"RocketChat/Rocket.Chat","slug":"saml-logout-request-no-nameid-node-found","errorCode":null,"errorMessage":"SAML Logout Request: No NameID node found","messagePattern":"SAML Logout Request: No NameID node found","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"apps/meteor/server/lib/saml/lib/parsers/LogoutRequest.ts","lineNumber":41,"sourceCode":"\t\t\treturn callback('Signature validation failed');\n\t\t}\n\n\t\tconst doc = new xmldom.DOMParser().parseFromString(xmlString, 'text/xml');\n\t\tif (!doc) {\n\t\t\treturn callback('No Doc Found');\n\t\t}\n\n\t\tconst request = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'LogoutRequest')[0];\n\t\tif (!request) {\n\t\t\treturn callback('No Request Found');\n\t\t}\n\n\t\ttry {\n\t\t\tconst sessionNode = request.getElementsByTagNameNS('*', 'SessionIndex')[0];\n\t\t\tconst nameIdNode = request.getElementsByTagNameNS('*', 'NameID')[0];\n\n\t\t\tif (!nameIdNode) {\n\t\t\t\tthrow new Error('SAML Logout Request: No NameID node found');\n\t\t\t}\n\n\t\t\tconst idpSession = sessionNode.childNodes[0].nodeValue;\n\t\t\tconst nameID = nameIdNode.childNodes[0].nodeValue;\n\t\t\tconst id = request.getAttribute('ID');\n\n\t\t\treturn callback(null, { idpSession, nameID, id });\n\t\t} catch (err) {\n\t\t\tSAMLUtils.error({ err });\n\n\t\t\tconst statusMessage = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'StatusMessage');\n\t\t\tSAMLUtils.log({ msg: `Unexpected msg from IDP. Does your session still exist at IDP?`, statusMessage });\n\n\t\t\treturn callback(err instanceof Error ? err : String(err), null);\n\t\t}\n\t}\n\n\tprivate verifySignature(envelope: SAMLRedirectEnvelope<'SAMLRequest'>): boolean {","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/RocketChat/Rocket.Chat/blob/b2c16d5842cbe6b69b59bdf6fc5e5f1afcd1f0b0/apps/meteor/server/lib/saml/lib/parsers/LogoutRequest.ts#L23-L59","documentation":"Error \"SAML Logout Request: No NameID node found\" thrown in RocketChat/Rocket.Chat.","triggerScenarios":"Thrown when parsing a SAML Logout Request XML that contains no NameID node.","commonSituations":"See trigger scenarios.","solutions":["Verify the IdP's logout request XML contains a NameID element; check the IdP single-logout configuration."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b2c16d5842cbe6b69b59bdf6fc5e5f1afcd1f0b0","analyzedAt":"2026-08-18T15:26:39.429Z","contentChangedAt":"2026-08-18T15:26:39.429Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}