RocketChat/Rocket.Chat · error · Error

SAML Logout Request: No NameID node found

Error message

SAML Logout Request: No NameID node found

What it means

Error "SAML Logout Request: No NameID node found" thrown in RocketChat/Rocket.Chat.

Source

Thrown at apps/meteor/server/lib/saml/lib/parsers/LogoutRequest.ts:41

			return callback('Signature validation failed');
		}

		const doc = new xmldom.DOMParser().parseFromString(xmlString, 'text/xml');
		if (!doc) {
			return callback('No Doc Found');
		}

		const request = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'LogoutRequest')[0];
		if (!request) {
			return callback('No Request Found');
		}

		try {
			const sessionNode = request.getElementsByTagNameNS('*', 'SessionIndex')[0];
			const nameIdNode = request.getElementsByTagNameNS('*', 'NameID')[0];

			if (!nameIdNode) {
				throw new Error('SAML Logout Request: No NameID node found');
			}

			const idpSession = sessionNode.childNodes[0].nodeValue;
			const nameID = nameIdNode.childNodes[0].nodeValue;
			const id = request.getAttribute('ID');

			return callback(null, { idpSession, nameID, id });
		} catch (err) {
			SAMLUtils.error({ err });

			const statusMessage = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'StatusMessage');
			SAMLUtils.log({ msg: `Unexpected msg from IDP. Does your session still exist at IDP?`, statusMessage });

			return callback(err instanceof Error ? err : String(err), null);
		}
	}

	private verifySignature(envelope: SAMLRedirectEnvelope<'SAMLRequest'>): boolean {

View on GitHub (pinned to b2c16d5842)

Solutions

  1. Verify the IdP's logout request XML contains a NameID element; check the IdP single-logout configuration.

When it happens

Trigger: Thrown when parsing a SAML Logout Request XML that contains no NameID node.

Common situations: See trigger scenarios.


AI-assisted analysis of RocketChat/Rocket.Chat@b2c16d5842 (2026-08-18). Data as JSON: /api/errors/76e4a9bf775d14b5. Report an issue: GitHub.