RocketChat/Rocket.Chat · error · Error

error-no-owner-channel

Error message

error-no-owner-channel

What it means

Error "error-no-owner-channel" thrown in RocketChat/Rocket.Chat.

Source

Thrown at apps/meteor/server/services/team/service.ts:356

		if (validRooms.length < rids.length) {
			throw new Error('invalid-room');
		}

		// validate access for every room first
		for await (const room of validRooms) {
			const canSeeRoom = await Authorization.canAccessRoom(room, user);
			if (!canSeeRoom) {
				throw new Error('invalid-room');
			}
		}

		for await (const room of validRooms) {
			if (room.teamId) {
				throw new Error('room-already-on-team');
			}

			if (!(await Subscriptions.isUserInRole(uid, 'owner', room._id))) {
				throw new Error('error-no-owner-channel');
			}

			if (room.t === 'c') {
				await Message.saveSystemMessage('user-added-room-to-team', team.roomId, room.name || '', user);
			}

			room.teamId = teamId;
		}

		await Rooms.setTeamByIds(rids, teamId);
		void notifyOnRoomChangedById(rids, 'updated');
		return validRooms;
	}

	async removeRoom(uid: string, rid: string, teamId: string, canRemoveAnyRoom = false): Promise<IRoom> {
		if (!teamId) {
			throw new Error('missing-teamId');
		}

View on GitHub (pinned to e4b8178b20)

Solutions

  1. Make the acting user an owner of the room before adding it to the team.
  2. Assign the owner role to the user in the room via the members management UI or API.

When it happens

Trigger: Thrown at apps/meteor/server/services/team/service.ts:354 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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