RocketChat/Rocket.Chat · error · Error

Too many Issuers

Error message

Too many Issuers

What it means

Error "Too many Issuers" thrown in RocketChat/Rocket.Chat.

Source

Thrown at apps/meteor/server/lib/saml/lib/parsers/Response.ts:400

				return false;
			}
		} catch (e) {
			SAMLUtils.log(e instanceof Error ? e.message : String(e));
			return false;
		}

		if (!this.signatureCoversElement(sig, expectedId)) {
			SAMLUtils.log('Failed to validate SAML signature: signed reference does not match the processed element');
			return false;
		}

		return true;
	}

	private getIssuer(assertion: Element): any {
		const issuers = assertion.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'Issuer');
		if (issuers.length > 1) {
			throw new Error('Too many Issuers');
		}

		return issuers[0];
	}

	private getSubject(assertion: Element): XmlParent {
		let subject: XmlParent = assertion.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'Subject')[0];
		const encSubject = assertion.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'EncryptedID')[0];

		if (typeof encSubject !== 'undefined') {
			const options = { key: this.serviceProviderOptions.privateKey, disallowDecryptionWithInsecureAlgorithm: false };
			xmlenc.decrypt(encSubject.getElementsByTagNameNS('*', 'EncryptedData')[0], options, (err, result) => {
				if (err) {
					SAMLUtils.error({ err });
				}
				subject = new xmldom.DOMParser().parseFromString(result, 'text/xml');
			});
		}

View on GitHub (pinned to b2c16d5842)

Solutions

  1. Check the IdP so the response contains a single Issuer element; inspect the raw SAML response.

When it happens

Trigger: Thrown when a SAML Response contains more than one Issuer node.

Common situations: See trigger scenarios.


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