RocketChat/Rocket.Chat · error · MarketplaceAppsError

Marketplace_Failed_To_Fetch_Apps

Error message

Marketplace_Failed_To_Fetch_Apps

What it means

MarketplaceAppsError 'Marketplace_Failed_To_Fetch_Apps' is the terminal fallback in fetchMarketplaceApps: thrown when the apps-list response is non-200 and matches none of the specific cases (426 unsupported, 400+code200 engine version, 500+internal codes). It simply means the cloud answered with an unexpected failure status/shape for the apps listing.

Solutions

  1. Read the preceding log line 'Error fetching marketplace apps' for the exact status and body — that determines everything downstream.
  2. 401/403: resync or re-register the workspace via Connectivity Services.
  3. 429/5xx: wait and retry; reduce polling frequency if a custom client hammers the endpoint.
  4. Other codes: escalate to support with the logged payload; consider manual zip install in the interim.
Defensive patterns

Strategy: try-catch

Try / catch

try {
  const apps = await fetchMarketplaceApps();
} catch (e) {
  if (e instanceof MarketplaceAppsError && e.message === 'Marketplace_Failed_To_Fetch_Apps') {
    // inspect server log for upstream status: 401/403 -> resync cloud; 429/5xx -> backoff retry
  }
}

Prevention

When it happens

Trigger: Cloud returns e.g. 401/403 (workspace not registered/token invalid), 404, 429, 502/503/504, or a 200-less response whose body does not parse into the known error patterns. Any status outside the handled set funnels here.

Common situations: Workspace never registered / de-registered from cloud (auth failures on every marketplace call); gateway 502/503 during cloud deploys; aggressive polling hitting cloud rate limits; proxy in front of the server stripping auth headers.

Related errors


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

Appendix: source

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

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