{"record":{"id":"29558efd908f029d","repo":"koala73/worldmonitor","slug":"initialize-error-initdata-error-message","errorCode":null,"errorMessage":"Initialize error: ${initData.error.message}","messagePattern":"Initialize error: (.+?)","errorType":"exception","errorClass":null,"httpStatus":422,"severity":"error","filePath":"api/mcp-proxy.ts","lineNumber":317,"sourceCode":"  try {\n    await postJson(serverUrl, {\n      jsonrpc: '2.0',\n      method: 'notifications/initialized',\n      params: {},\n    }, headers, sessionId);\n  } catch (error) {\n    if (error instanceof McpProxySsrfError) throw error;\n    /* non-fatal */\n  }\n}\n\nasync function mcpListTools(serverUrl, customHeaders) {\n  const headers = buildHeaders(customHeaders);\n  const initResp = await postJson(serverUrl, buildInitPayload(), headers, null);\n  if (!initResp.ok) throw new Error(`Initialize failed: HTTP ${initResp.status}`);\n  const sessionId = initResp.headers.get('Mcp-Session-Id') || initResp.headers.get('mcp-session-id');\n  const initData = await parseJsonRpcResponse(initResp);\n  if (initData.error) throw new Error(`Initialize error: ${initData.error.message}`);\n  await sendInitialized(serverUrl, headers, sessionId);\n  const listResp = await postJson(serverUrl, {\n    jsonrpc: '2.0', id: 2, method: 'tools/list', params: {},\n  }, headers, sessionId);\n  if (!listResp.ok) throw new Error(`tools/list failed: HTTP ${listResp.status}`);\n  const listData = await parseJsonRpcResponse(listResp);\n  if (listData.error) throw new Error(`tools/list error: ${listData.error.message}`);\n  return listData.result?.tools || [];\n}\n\nasync function mcpCallTool(serverUrl, toolName, toolArgs, customHeaders) {\n  const headers = buildHeaders(customHeaders);\n  const initResp = await postJson(serverUrl, buildInitPayload(), headers, null);\n  if (!initResp.ok) throw new Error(`Initialize failed: HTTP ${initResp.status}`);\n  const sessionId = initResp.headers.get('Mcp-Session-Id') || initResp.headers.get('mcp-session-id');\n  const initData = await parseJsonRpcResponse(initResp);\n  if (initData.error) throw new Error(`Initialize error: ${initData.error.message}`);\n  await sendInitialized(serverUrl, headers, sessionId);","sourceCodeStart":299,"sourceCodeEnd":335,"githubUrl":"https://github.com/koala73/worldmonitor/blob/9361220cc013571781071f0206e4d80fd14b2f7f/api/mcp-proxy.ts#L299-L335","documentation":"Thrown during MCP session bootstrap when the initialize request succeeded at the HTTP level but the JSON-RPC response payload carried a top-level error object. The MCP server itself reported a protocol-level failure (unsupported protocol version, malformed init payload, server-side refusal), distinct from a transport/HTTP failure.","triggerScenarios":"Thrown at api/mcp-proxy.ts:315 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the embedded error.message: it is the upstream MCP server's own protocol error text","Confirm the client's protocolVersion and clientInfo in the initialize payload are accepted by the server","Update or reconfigure the MCP server if it rejects the negotiated protocol version"],"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"}