RocketChat/Rocket.Chat · error · MarketplaceAppsError

Marketplace_Invalid_Apps_Engine_Version

Error message

Marketplace_Invalid_Apps_Engine_Version

What it means

Thrown by fetchMarketplaceApps when the marketplace responds with HTTP 400 AND response.code === 200. Maps to MarketplaceAppsError('Marketplace_Invalid_Apps_Engine_Version'). The code 200 here is a marketplace-internal error code (not HTTP), indicating the Apps Engine version reported by the workspace does not match what the marketplace expects for its apps.

Source

Thrown at apps/meteor/ee/server/apps/marketplace/fetchMarketplaceApps.ts:186

	}

	if (request.status === 200) {
		const response = await request.json();
		fetchMarketplaceAppsSchema.parse(response);
		return response;
	}

	const response = await request.json();

	Apps.getRocketChatLogger().error({ msg: 'Error fetching marketplace apps', status: request.status, response });

	// TODO: Refactor cloud to return a proper error code on unsupported version
	if (request.status === 426 && 'errorMsg' in response && response.errorMsg === 'unsupported version') {
		throw new MarketplaceUnsupportedVersionError();
	}

	if (request.status === 400 && response.code === 200) {
		throw new MarketplaceAppsError('Marketplace_Invalid_Apps_Engine_Version');
	}

	const INTERNAL_MARKETPLACE_ERROR_CODES = [266, 256, 166, 221, 257, 320];

	if (request.status === 500 && INTERNAL_MARKETPLACE_ERROR_CODES.includes(response.code)) {
		throw new MarketplaceAppsError('Marketplace_Internal_Error');
	}

	throw new MarketplaceAppsError('Marketplace_Failed_To_Fetch_Apps');
}

View on GitHub (pinned to f9d3ec372b)

Solutions

  1. Update Rocket.Chat (and thus the bundled Apps Engine) to align with marketplace requirements.
  2. Verify the Apps Engine framework version in Administration > Apps and compare with marketplace-supported versions.
  3. Avoid forks that misreport the engine version.
  4. If upgrading is blocked, install apps via offline zip upload.
Defensive patterns

Strategy: try-catch

Validate before calling

async function appsEngineVersionCompatible(): Promise<boolean> {
  // compare bundled Apps Engine framework version against marketplace requirements
  const frameworkVersion = Apps.getRocketChatAppSdkInfo()?.frameworkVersion;
  return isSupportedByMarketplace(frameworkVersion);
}

Type guard

import { MarketplaceAppsError } from './marketplaceErrors';

const isInvalidAppsEngineVersion = (e: unknown): e is MarketplaceAppsError =>
  e instanceof MarketplaceAppsError && e.message === 'Marketplace_Invalid_Apps_Engine_Version';

Try / catch

try {
  return await fetchMarketplaceApps();
} catch (e) {
  if (e instanceof MarketplaceAppsError && e.message === 'Marketplace_Invalid_Apps_Engine_Version') {
    notifyAdminToUpdateAppsEngine();
    return [];
  }
  throw e;
}

Prevention

When it happens

Trigger: Calling fetchMarketplaceApps() when the workspace's Apps Engine framework version is incompatible with the marketplace's current app catalogue requirements. The marketplace returns 400 with its internal code 200.

Common situations: Apps Engine version drift after a partial upgrade; running a fork or custom build reporting a non-standard framework version; marketplace raised the required Apps Engine version; downgrade left the engine version mismatched.

Related errors


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