Skip to content

Resource not found (-32602, formerly -32002)

Spec
2025-11-25 → 2026-07-28
Evidence
E2Reproducedarm64
TypeScript SDK (server)
@modelcontextprotocol/server@2.4.0
TypeScript SDK v1
@modelcontextprotocol/sdk@1.32.2
Python SDK
mcp@2.3.0
Verified

The client asked to read a resource URI the server does not know. We read greeting://nope from servers that only have greeting://hello:

Server Error
TypeScript SDK v2 2.4.0 {"code":-32602,"message":"Resource not found: greeting://nope","data":{"uri":"greeting://nope"}}
TypeScript SDK v1 1.32.2 MCP error -32602: Resource greeting://nope not found
Python SDK 2.3.0 {"code":-32602,"message":"Unknown resource: greeting://nope","data":{"uri":"greeting://nope"}}

The 2025-11-25 specification recommended -32002 for this case. The 2026-07-28 changelog changes it to -32602 (Invalid Params) “to align with JSON-RPC specification”. All three current SDKs we tested already return -32602, on both 2025 and 2026 connections.

  • Compare the URI character by character with resources/list or resources/templates/list. Schemes, trailing slashes and percent-encoding matter.
  • For a template such as file:///{path}, check that the server’s handler accepts the value the client filled in.
  • A URI the model made up, rather than one from the list, is common. Describe resources clearly so the host offers real ones.

Client code written for 2025 that treats only -32002 as “not found” misses the new code and may show a generic error or retry. Check for both while servers of both generations are around, and prefer the error’s data.uri over parsing the message.

Sources

MCPDev is community documentation. It is not affiliated with the Model Context Protocol project or with the vendors of the clients it covers.