RocketChat/Rocket.Chat · error · Meteor.Error

error-not-authorized-federation

error-not-authorized-federation

Error message

Not authorized to access federation

What it means

When a room is marked federated (extraData.federated === true) the creating owner must either be a native federated user or pass FederationMatrix.canUserAccessFederation. Otherwise createRoom throws error-not-authorized-federation, blocking local users without federation access from creating federated rooms.

Source

Thrown at apps/meteor/server/lib/rooms/createRoom.ts:186

		throw new Meteor.Error('error-federated-users-in-non-federated-rooms', 'Cannot add federated users to non-federated rooms', {
			method: 'createRoom',
		});
	}

	await prepareCreateRoomCallback.run({
		type,
		// name,
		// owner: ownerUsername,
		// members,
		// readOnly,
		extraData,
		// options,
	});

	const shouldBeHandledByFederation = extraData.federated === true;

	if (shouldBeHandledByFederation && owner && !isUserNativeFederated(owner) && !(await FederationMatrix.canUserAccessFederation(owner))) {
		throw new Meteor.Error('error-not-authorized-federation', 'Not authorized to access federation', {
			method: 'createRoom',
		});
	}

	if (type === 'd') {
		return createDirectRoom(members as IUser[], extraData, { ...options, creator: options?.creator || owner?._id });
	}

	const memberList = [...members];

	if (!onlyUsernames(memberList)) {
		throw new Meteor.Error(
			'error-invalid-members',
			'members should be an array of usernames if provided for rooms other than direct messages',
		);
	}

	if (!isValidName(name)) {

View on GitHub (pinned to b2c16d5842)

Solutions

  1. Verify federation is enabled and healthy in Administration settings (Federation / Matrix bridge running)
  2. Ensure the owner user is a native federated user or is permitted by canUserAccessFederation (check federation access rules)
  3. If federation is not intended, remove federated: true from roomExtraData
Defensive patterns

Strategy: validation

Validate before calling

if (extraData.federated === true && !isUserNativeFederated(owner)) {
  const allowed = await FederationMatrix.canUserAccessFederation(owner);
  if (!allowed) {
    throw new Meteor.Error('error-not-authorized-federation', 'Owner lacks federation access');
  }
}

Try / catch

try {
  await createRoom(type, name, owner, members, { federated: true });
} catch (err) {
  if (err instanceof Meteor.Error && err.error === 'error-not-authorized-federation') {
    // surface to the user: enable federation or use a federated-capable owner
  }
  throw err;
}

Prevention

When it happens

Trigger: createRoom with extraData.federated = true where owner is a normal local user (not isUserNativeFederated) and canUserAccessFederation(owner) resolves false — e.g. federation disabled in admin settings, user not allowed by federation ACLs, or the Matrix bridge not running.

Common situations: Federation toggle enabled at room level but the federation feature itself disabled or not fully configured server-side; attempting to create federated rooms with a bot/admin account that was never granted federation access; development environments without the federation app installed.

Related errors


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