{"record":{"id":"590a7f76a3299ee2","repo":"RocketChat/Rocket.Chat","slug":"not-found-590a7f","errorCode":null,"errorMessage":"Not Found","messagePattern":"Not Found","errorType":"http","errorClass":null,"httpStatus":404,"severity":"error","filePath":"apps/meteor/app/apps/server/bridges/api.ts","lineNumber":29,"sourceCode":"import { apiServer } from './router';\nimport { authenticationMiddleware } from '../../../../server/api/v1/middlewares/authentication';\n\nWebApp.rawConnectHandlers.use(apiServer);\n\ninterface IRequestWithPrivateHash extends Request {\n\t_privateHash?: string;\n\tcontent?: any;\n}\n\nexport class AppApisBridge extends ApiBridge {\n\tappRouters: Map<string, IRouter>;\n\n\tconstructor(private readonly orch: IAppServerOrchestrator) {\n\t\tsuper();\n\t\tthis.appRouters = new Map();\n\n\t\tapiServer.use('/api/apps/private/:appId/:hash', (req: IRequestWithPrivateHash, res: Response) => {\n\t\t\tconst notFound = (): Response => res.sendStatus(404);\n\n\t\t\tconst router = this.appRouters.get(req.params.appId);\n\n\t\t\tif (router) {\n\t\t\t\treq._privateHash = req.params.hash;\n\t\t\t\treturn router(req, res, notFound);\n\t\t\t}\n\n\t\t\tnotFound();\n\t\t});\n\n\t\tapiServer.use('/api/apps/public/:appId', (req: Request, res: Response) => {\n\t\t\tconst notFound = (): Response => res.sendStatus(404);\n\n\t\t\tconst router = this.appRouters.get(req.params.appId);\n\n\t\t\tif (router) {\n\t\t\t\treturn router(req, res, notFound);","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/RocketChat/Rocket.Chat/blob/b2c16d5842cbe6b69b59bdf6fc5e5f1afcd1f0b0/apps/meteor/app/apps/server/bridges/api.ts#L11-L47","documentation":"Error \"Not Found\" thrown in RocketChat/Rocket.Chat.","triggerScenarios":"Thrown at apps/meteor/app/apps/server/bridges/api.ts:29 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the appId in the /api/apps/private/:appId/:hash URL corresponds to an installed app that registered a private API route.","Ensure the app is enabled; routers are removed when an app is disabled or uninstalled.","Check the request path and HTTP method match a route the app actually registered."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b2c16d5842cbe6b69b59bdf6fc5e5f1afcd1f0b0","analyzedAt":"2026-08-18T15:26:39.429Z","contentChangedAt":"2026-08-18T15:26:39.429Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}