{"record":{"id":"e2c340369c198075","repo":"koala73/worldmonitor","slug":"dashboard-action-result-exceeded-the-safe-output-l","errorCode":null,"errorMessage":"Dashboard action result exceeded the safe output limit.","messagePattern":"Dashboard action result exceeded the safe output limit\\.","errorType":"exception","errorClass":"SafeWebMcpError","httpStatus":null,"severity":"error","filePath":"src/services/webmcp.ts","lineNumber":628,"sourceCode":"  'techhq',\n  'accelerator',\n  'exchange',\n  'financialcenter',\n  'centralbank',\n  'commodityhub',\n  'flight',\n]);\nconst TOOL_FAILURE_MESSAGES: Record<WebMcpSpaToolName, string> = {\n  openCountryBrief: 'World Monitor could not open that country brief.',\n  openSearch: 'World Monitor could not open search.',\n  get_dashboard_context: 'World Monitor could not read dashboard context.',\n  list_map_layers: 'World Monitor could not list map layers.',\n  list_dashboard_panels: 'World Monitor could not list dashboard panels.',\n  switch_monitor: 'World Monitor could not switch monitors.',\n  open_settings: 'World Monitor could not open settings.',\n  open_alerts: 'World Monitor could not open alerts.',\n  open_dashboard_panel: 'World Monitor could not open that dashboard panel.',\n  set_panel_enabled: 'World Monitor could not update that dashboard panel.',\n  get_panel_layout: 'World Monitor could not read the panel layout.',\n  set_panel_collapsed: 'World Monitor could not update that panel collapse state.',\n  move_panel: 'World Monitor could not move that panel.',\n  set_panel_fullscreen: 'World Monitor could not update that panel fullscreen state.',\n  set_map_view: 'World Monitor could not move the map.',\n  set_map_layers: 'World Monitor could not update map layers.',\n  set_time_range: 'World Monitor could not set the map time range.',\n  focus_country: 'World Monitor could not focus that country.',\n  set_map_mode: 'World Monitor could not switch the map mode.',\n  search_dashboard: 'World Monitor could not search the dashboard.',\n  open_search_result: 'World Monitor could not open that search result.',\n  list_dashboard_tabs: 'World Monitor could not list dashboard tabs.',\n  select_dashboard_tab: 'World Monitor could not select that dashboard tab.',\n  create_dashboard_tab: 'World Monitor could not create that dashboard tab.',\n  rename_dashboard_tab: 'World Monitor could not rename that dashboard tab.',\n  delete_dashboard_tab: 'World Monitor could not delete that dashboard tab.',\n  list_mission_presets: 'World Monitor could not list mission presets.',\n  apply_mission_preset: 'World Monitor could not apply that mission preset.',","sourceCodeStart":610,"sourceCodeEnd":646,"githubUrl":"https://github.com/koala73/worldmonitor/blob/e586b8b4b80f595aa7ece295eec10d76f2921240/src/services/webmcp.ts#L610-L646","documentation":"The WebMCP dashboard-action result sanitizer detected that the serialized action result exceeds the safe output limit even after bounding each text field (message 240 chars, target fields 96/64 chars). This is a size guard on the MCP tool response: the action produced an unexpectedly large payload (typically too many targets) and the bounded envelope would still be too big to return.","triggerScenarios":"Thrown at src/services/webmcp.ts:456 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reduce the action's output size at the source (fewer targets, shorter messages) before serialization","Trim the targets array and set targetsTruncated to fit the limit instead of failing","Add a unit test asserting the bounded envelope stays under the limit for worst-case inputs"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e586b8b4b80f595aa7ece295eec10d76f2921240","analyzedAt":"2026-08-21T16:51:25.751Z","contentChangedAt":"2026-08-21T16:51:25.751Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}