RocketChat/Rocket.Chat · warning

failed to notify about the setting change.

Error message

failed to notify about the setting change.

What it means

When an app setting changes, the bridge forwards it to running apps via the orchestrator's notifier (appSettingsChange). The promise rejected — or the call threw synchronously — and the bridge only prints this console.warn including the appId (but, notably, not the error itself). Impact is limited: apps miss the live update for that one setting and pick up the new value on the next app load/restart.

Source

Thrown at apps/meteor/app/apps/server/bridges/details.ts:11

import type { IAppServerOrchestrator } from '@rocket.chat/apps';
import { AppDetailChangesBridge as DetailChangesBridge } from '@rocket.chat/apps/dist/server/bridges/AppDetailChangesBridge';
import type { ISetting } from '@rocket.chat/apps-engine/definition/settings';

export class AppDetailChangesBridge extends DetailChangesBridge {
	constructor(private readonly orch: IAppServerOrchestrator) {
		super();
	}

	protected onAppSettingsChange(appId: string, setting: ISetting): void {
		const logFailure = () => console.warn('failed to notify about the setting change.', appId);

		try {
			this.orch.getNotifier().appSettingsChange(appId, setting).catch(logFailure);
		} catch (e) {
			logFailure();
		}
	}
}

View on GitHub (pinned to b2c16d5842)

Solutions

  1. Usually transient: re-save the setting or restart the affected app to re-sync its values
  2. Confirm the app reflects the new value after its next load (settings are read on startup regardless)
  3. Escalate only if every save fails — and note the warn omits the error, so reproduce with debug logging to capture the cause

Example fix

// current: failure detail is dropped
const logFailure = () => console.warn('failed to notify about the setting change.', appId);
// better: include the rejection reason
const logFailure = (err?: unknown) => console.warn('failed to notify about the setting change.', appId, err);
Defensive patterns

Strategy: try-catch

Try / catch

const logFailure = (err?: unknown) => console.warn('failed to notify about the setting change.', appId, err);
try {
	this.orch.getNotifier().appSettingsChange(appId, setting).catch(logFailure);
} catch (e) {
	logFailure(e);
}

Prevention

When it happens

Trigger: The target app being uninstalled, disabled or reloaded concurrently while the notification is in flight; the apps-engine notifier hitting a dead app instance; memory pressure or orchestrator restart racing the setting save.

Common situations: Saving app settings in the admin UI while the app updates/restarts; development hot-reload of apps racing setting saves; transient races during mass app operations.

Related errors


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