{"record":{"id":"35b0d9fdb1e4efd2","repo":"koala73/worldmonitor","slug":"limit-must-be-an-integer-from-1-to-max-search-re","errorCode":null,"errorMessage":"limit must be an integer from 1 to ${MAX_SEARCH_RESULTS}.","messagePattern":"limit must be an integer from 1 to (.+?)\\.","errorType":"validation","errorClass":"SafeWebMcpError","httpStatus":null,"severity":"error","filePath":"src/services/webmcp.ts","lineNumber":2482,"sourceCode":"        if (args.query.length > MAX_SEARCH_QUERY_CHARS) {\n          throw new SafeWebMcpError(\n            `query must be at most ${MAX_SEARCH_QUERY_CHARS} characters.`,\n            'validation',\n          );\n        }\n        const query = args.query.trim();\n        if (!query) throw new SafeWebMcpError('query must not be empty.', 'validation');\n\n        const scope = args.scope === undefined ? 'all' : args.scope;\n        if (typeof scope !== 'string' || !DASHBOARD_SEARCH_SCOPES.has(scope as DashboardSearchScope)) {\n          throw new SafeWebMcpError(\n            'scope must be one of: all, signals, map, panels, actions.',\n            'validation',\n          );\n        }\n        const limit = args.limit === undefined ? DEFAULT_SEARCH_RESULTS : args.limit;\n        if (!Number.isInteger(limit) || Number(limit) < 1 || Number(limit) > MAX_SEARCH_RESULTS) {\n          throw new SafeWebMcpError(\n            `limit must be an integer from 1 to ${MAX_SEARCH_RESULTS}.`,\n            'validation',\n          );\n        }\n\n        return boundDashboardSearchResult(await app.searchDashboard(\n          query,\n          scope as DashboardSearchScope,\n          Number(limit),\n          extra,\n        ));\n      }, trackEvent, {\n        successMetadata: (args, value) => {\n          const result = value as DashboardSearchResponse;\n          return {\n            queryLength: typeof args.query === 'string' ? args.query.trim().length : 0,\n            resultCount: result.resultCount,\n            resultTypes: [...new Set(","sourceCodeStart":2464,"sourceCodeEnd":2500,"githubUrl":"https://github.com/koala73/worldmonitor/blob/9361220cc013571781071f0206e4d80fd14b2f7f/src/services/webmcp.ts#L2464-L2500","documentation":"SafeWebMcpError thrown by search_dashboard when the optional limit argument is outside the allowed integer range 1..MAX_SEARCH_RESULTS (non-integer, zero, negative, or too large). It bounds result-set size before the search runs.","triggerScenarios":"Thrown at src/services/webmcp.ts:779 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send limit as an integer within the advertised schema range","Omit limit to accept the default result count"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9361220cc013571781071f0206e4d80fd14b2f7f","analyzedAt":"2026-08-21T16:51:25.751Z","contentChangedAt":"2026-08-21T16:51:25.751Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}