RocketChat/Rocket.Chat · info · Error

No_results_found

Error message

No_results_found

What it means

Client-side synthetic error in the Marketplace app's Releases tab: the useQuery queryFn fetches GET /apps/:id/versions and, when the returned apps array is empty, throws new Error(t('No_results_found')). This converts 'no versions published' into a query error so the UI renders the error state (EmptyState) instead of an empty list; meta.apiErrorToastMessage also toasts it.

Source

Thrown at apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppReleases/AppReleases.tsx:22

import { useQuery } from '@tanstack/react-query';
import { useTranslation } from 'react-i18next';

import AppReleasesItem from './AppReleasesItem';
import AccordionLoading from '../../../components/AccordionLoading';

export type AppReleasesProps = { id: App['id'] };

const AppReleases = ({ id }: AppReleasesProps) => {
	const getVersions = useEndpoint('GET', '/apps/:id/versions', { id });
	const { t } = useTranslation();

	const { data, isLoading, isFetched } = useQuery({
		queryKey: ['apps', id, 'versions'],
		queryFn: async () => {
			const { apps } = await getVersions();

			if (apps.length === 0) {
				throw new Error(t('No_results_found'));
			}
			return apps;
		},
		meta: {
			apiErrorToastMessage: true,
		},
	});

	return (
		<>
			<Accordion width='100%' alignSelf='center'>
				{isLoading && <AccordionLoading />}
				{isFetched && <>{data?.map((release) => <AppReleasesItem release={release} key={release.version} />)}</>}
			</Accordion>
		</>
	);
};

View on GitHub (pinned to b2c16d5842)

Solutions

  1. Treat it as an expected empty state: this is informational, not a failure — no fix needed if the app genuinely has no releases.
  2. Verify via GET /api/apps/:id/versions that the array is really empty.
  3. Re-sync the marketplace (Admin > Marketplace) if versions are missing unexpectedly.
  4. For sideloaded apps, ensure the app.json version info is valid so versions are listed.

Example fix

// before
if (apps.length === 0) {
  throw new Error(t('No_results_found'));
}

// after (optional UX refactor): render empty state instead of throwing
if (apps.length === 0) {
  return [];
}
// then render <EmptyState title={t('No_results_found')} /> when data?.length === 0
Defensive patterns

Strategy: fallback

Validate before calling

const { apps } = await getVersions();
if (apps.length === 0) {
  // render the 'no releases' empty state; skip the error path
}

Try / catch

try { ... } catch (e) { if ((e as Error).message === t('No_results_found')) { /* expected: app has no published versions */ return; } throw e; }

Prevention

When it happens

Trigger: Opening an app's Releases tab in the marketplace for an app whose versions list from the Apps-Engine endpoint is empty (unpublished/exploratory app, engine returned no versions, or filtered results).

Common situations: Private/sideloaded apps without published versions; marketplace sync glitches returning empty arrays; newly listed apps before versions propagate.

Related errors


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