RocketChat/Rocket.Chat · error · Meteor.Error

SlackBridge_disabled

SlackBridge_disabled

Error message

SlackBridge_disabled

What it means

Thrown by removeSlackBridgeChannelLinks when the caller passes the user and permission checks but settings.get('SlackBridge_Enabled') is not exactly true. The SlackBridge feature is disabled at the instance level, so removing its channel links is refused to avoid inconsistent state.

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 f9d3ec372b)

Solutions

  1. If link removal is genuinely needed, temporarily enable SlackBridge_Enabled, run the removal, then disable it again - or perform the cleanup directly via the Rooms.unsetAllImportIds in a maintenance script.
  2. If SlackBridge is off permanently, suppress the removal UI; there is nothing to link.
  3. Confirm with the admin whether importIds should be cleared at all when the bridge is inactive.

Example fix

// before
Meteor.call('removeSlackBridgeChannelLinks') // SlackBridge_Enabled = false

// after - enable then remove (or skip)
await Settings.set('SlackBridge_Enabled', true)
Meteor.call('removeSlackBridgeChannelLinks')
Defensive patterns

Strategy: validation

Validate before calling

const enabled = settings.get('SlackBridge_Enabled');
if (enabled !== true) throw new ClientError('config','SlackBridge_Enabled is off; nothing to remove');

Type guard

function isSlackBridgeEnabled(v) { return v === true; }

Try / catch

try { Meteor.call('removeSlackBridgeChannelLinks'); }
catch (e) {
  if (e?.error === 'SlackBridge_disabled') { surface('Enable SlackBridge before removing links'); return; }
  throw e;
}

Prevention

When it happens

Trigger: An authorized admin calls removeSlackBridgeChannelLinks while SlackBridge_Enabled is false (feature off, never configured, or disabled).

Common situations: SlackBridge was disabled after a migration but leftover admin UI still exposes the link-removal action. New instance where SlackBridge was never enabled.

Related errors


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