RocketChat/Rocket.Chat · error

Not Found

Error message

Not Found

What it means

Error "Not Found" thrown in RocketChat/Rocket.Chat.

Source

Thrown at apps/meteor/app/apps/server/bridges/api.ts:29

import { apiServer } from './router';
import { authenticationMiddleware } from '../../../../server/api/v1/middlewares/authentication';

WebApp.rawConnectHandlers.use(apiServer);

interface IRequestWithPrivateHash extends Request {
	_privateHash?: string;
	content?: any;
}

export class AppApisBridge extends ApiBridge {
	appRouters: Map<string, IRouter>;

	constructor(private readonly orch: IAppServerOrchestrator) {
		super();
		this.appRouters = new Map();

		apiServer.use('/api/apps/private/:appId/:hash', (req: IRequestWithPrivateHash, res: Response) => {
			const notFound = (): Response => res.sendStatus(404);

			const router = this.appRouters.get(req.params.appId);

			if (router) {
				req._privateHash = req.params.hash;
				return router(req, res, notFound);
			}

			notFound();
		});

		apiServer.use('/api/apps/public/:appId', (req: Request, res: Response) => {
			const notFound = (): Response => res.sendStatus(404);

			const router = this.appRouters.get(req.params.appId);

			if (router) {
				return router(req, res, notFound);

View on GitHub (pinned to b2c16d5842)

Solutions

  1. Verify the appId in the /api/apps/private/:appId/:hash URL corresponds to an installed app that registered a private API route.
  2. Ensure the app is enabled; routers are removed when an app is disabled or uninstalled.
  3. Check the request path and HTTP method match a route the app actually registered.

When it happens

Trigger: Thrown at apps/meteor/app/apps/server/bridges/api.ts:29 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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