{"record":{"id":"202977cdc591c7c7","repo":"ComposioHQ/composio","slug":"not-found","errorCode":null,"errorMessage":"Not found","messagePattern":"Not found","errorType":"http","errorClass":null,"httpStatus":404,"severity":"info","filePath":"ts/packages/cli/src/services/tool-permissions.ts","lineNumber":1002,"sourceCode":"        res\n          .writeHead(200, {\n            'Content-Type': 'text/html; charset=utf-8',\n            'Cache-Control': 'no-store',\n          })\n          .end(approvalHtml({ ...params, token }));\n        return;\n      }\n\n      const decision =\n        url.pathname === '/allow-session'\n          ? 'allow_session'\n          : url.pathname === '/allow-once'\n            ? 'allow_once'\n            : url.pathname === '/deny'\n              ? 'deny'\n              : undefined;\n      if (!decision) {\n        res.writeHead(404, { 'Content-Type': 'text/plain; charset=utf-8' }).end('Not found');\n        return;\n      }\n\n      res\n        .writeHead(200, {\n          'Content-Type': 'text/html; charset=utf-8',\n          'Cache-Control': 'no-store',\n        })\n        .end(completionHtml(decision));\n      settle(decision);\n    });\n\n    const timeout = setTimeout(() => settle('deny'), 30_000);\n\n    server.on('close', () => clearTimeout(timeout));\n    server.on('error', error => {\n      if (settled) return;\n      settled = true;","sourceCodeStart":984,"sourceCodeEnd":1020,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/ts/packages/cli/src/services/tool-permissions.ts#L984-L1020","documentation":"The local permissions server only recognizes the decision paths '/', '/allow', '/allow-once', and '/deny'. Any other pathname yields a 404 'Not found' plain-text response after the token check passes.","triggerScenarios":"A request to an unknown path such as /favicon.ico (browser auto-request), /approve instead of /allow, or manual exploration of the local server once past token validation.","commonSituations":"Opening the approval link in a browser that then requests /favicon.ico (harmlessly 404ing), mistyping the decision path, or health-checkers hitting the port. This 404 is cosmetic unless your flow depends on the unknown path.","solutions":["Use only the documented decision paths: /, /allow, /allow-once, /deny","Ignore favicon.ico 404s from browsers — the approval link still works","If you script against this server, match paths exactly (lowercase)"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use only /, /allow, /allow-once, /deny paths","Ignore browser favicon 404 noise","Script against exact lowercase paths"],"tags":["permissions","localhost","http","not-found"],"backgroundTag":"http-404-not-found","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}