RocketChat/Rocket.Chat · error · Meteor.Error

SlackBridge_disabled

SlackBridge_disabled

Error message

SlackBridge_disabled

What it means

removeSlackBridgeChannelLinks throws SlackBridge_disabled (a bare code with no human message) when the SlackBridge_Enabled setting is not exactly true. The check runs after user and permission checks, so an authorized caller still cannot unlink channels while the SlackBridge integration is off. It exists to prevent mutating room importIds for a feature the workspace has disabled.

Solutions

  1. Enable SlackBridge under Admin → Slack Bridge (set SlackBridge_Enabled = true), perform the unlink, then disable it again if desired
  2. Skip the unlink operation on workspaces where the bridge is disabled
  3. If a script drives this, first read SlackBridge_Enabled and only call the method when true

Example fix

// before
await call('removeSlackBridgeChannelLinks'); // throws SlackBridge_disabled

// after
const enabled = settings.get('SlackBridge_Enabled');
if (enabled === true) {
  await call('removeSlackBridgeChannelLinks');
}
Defensive patterns

Strategy: validation

Validate before calling

// via admin REST: confirm the bridge is on before offering the unlink
const res = await fetch('/api/v1/settings/SlackBridge_Enabled', { headers: adminHeaders });
const { value } = await res.json();
if (value !== true) throw new Error('SlackBridge is disabled on this workspace');
await call('removeSlackBridgeChannelLinks');

Try / catch

try {
  await Meteor.callAsync('removeSlackBridgeChannelLinks');
} catch (e) {
  if (e.error === 'SlackBridge_disabled') {
    // prompt the admin to enable SlackBridge first (Admin → Slack Bridge)
  }
}

Prevention

When it happens

Trigger: An authenticated, permission-holding user calls removeSlackBridgeChannelLinks while SlackBridge_Enabled is false or unset in Administration → Slack Bridge.

Common situations: Admin disabled the bridge earlier (or it was never configured) and later tries the cleanup action; automated cleanup scripts run against workspaces where the bridge is off; setting reset during migration or restore.

Related errors


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

Appendix: source

Thrown at apps/meteor/server/bridges/slack/removeChannelLinks.ts:31

}

Meteor.methods<ServerMethods>({
	async removeSlackBridgeChannelLinks() {
		const user = await Meteor.userAsync();
		if (!user) {
			throw new Meteor.Error('error-invalid-user', 'Invalid user', {
				method: 'removeSlackBridgeChannelLinks',
			});
		}

		if (!(await hasPermissionAsync(user, 'remove-slackbridge-links'))) {
			throw new Meteor.Error('error-not-authorized', 'Not authorized', {
				method: 'removeSlackBridgeChannelLinks',
			});
		}

		if (settings.get('SlackBridge_Enabled') !== true) {
			throw new Meteor.Error('SlackBridge_disabled');
		}

		await Rooms.unsetAllImportIds();

		return {
			message: 'Slackbridge_channel_links_removed_successfully',
			params: [],
		};
	},
});

View on GitHub (pinned to b2c16d5842)