RocketChat/Rocket.Chat · error · MarketplaceAppsError
Marketplace_Internal_Error
Error message
Marketplace_Internal_Error
What it means
Thrown when the Rocket.Chat Cloud marketplace endpoint returns HTTP 500 with a body whose `code` field is one of the internal marketplace error codes (189 or 266). It signals an unrecoverable server-side failure inside the marketplace service itself, distinct from connectivity or version problems. The error is a typed `MarketplaceAppsError` carrying the message key `Marketplace_Internal_Error`, surfaced from `fetchMarketplaceCategories()` after the response body is parsed and logged.
Source
Thrown at apps/meteor/ee/server/apps/marketplace/fetchMarketplaceCategories.ts:72
if (request.status === 200) {
const response = await request.json();
fetchMarketplaceCategoriesSchema.parse(response);
return response;
}
const response = await request.json();
Apps.getRocketChatLogger().error({ msg: 'Error fetching marketplace categories', 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();
}
const INTERNAL_MARKETPLACE_ERROR_CODES = [189, 266];
if (request.status === 500 && INTERNAL_MARKETPLACE_ERROR_CODES.includes(response.code)) {
throw new MarketplaceAppsError('Marketplace_Internal_Error');
}
throw new MarketplaceAppsError('Marketplace_Failed_To_Fetch_Categories');
}
View on GitHub (pinned to f9d3ec372b)
Solutions
- Retry the marketplace/categories request after a short delay — 500 with these codes is typically a transient cloud-side fault.
- Check Rocket.Chat Cloud status pages / announcements for an active marketplace incident.
- Inspect the server log entry `Error fetching marketplace categories` (it records status and full response body) to confirm `response.code` is 189/266 and capture the cloud-side trace if reporting a bug.
- Upgrade the workspace to a supported version if the cloud has deprecated the request shape for your build.
Defensive patterns
Strategy: retry
Type guard
import { MarketplaceAppsError } from './marketplaceErrors';
function isMarketplaceInternalError(e: unknown): boolean {
return e instanceof MarketplaceAppsError && e.message === 'Marketplace_Internal_Error';
} Try / catch
try {
const categories = await fetchMarketplaceCategories();
} catch (e) {
if (e instanceof MarketplaceAppsError && e.message === 'Marketplace_Internal_Error') {
// transient cloud-side 500 (codes 189/266) — retry with backoff
}
throw e;
} Prevention
- Treat 500 internal marketplace errors as transient and retry with exponential backoff.
- Log the full cloud response (status + body) for root-cause reporting.
- Keep the workspace on a marketplace-supported version to avoid edge-case 500s.
When it happens
Trigger: Calling `fetchMarketplaceCategories()` (which hits `GET v1/categories` on the marketplace client) when the cloud responds with status 500 AND `response.code` equals 189 or 266. Any other 500 body falls through to the generic categories-fetch error.
Common situations: A transient outage or bug on the Rocket.Chat Cloud marketplace backend; a workspace whose cached access token triggers a server-side fault; during a cloud-side deployment window where the categories service is degraded.
Related errors
- Marketplace_Failed_To_Fetch_Categories
- App package download failed
- App metadata download failed
- result.error
- Marketplace_Bad_Marketplace_Connection
AI-assisted analysis of RocketChat/Rocket.Chat@f9d3ec372b (2026-08-12).
Data as JSON: /api/errors/17e1eca987274c6c.
Report an issue: GitHub.