A vendor's MCP server needs a new error code meaning "quota exhausted for this tenant". No code in the MCP specification covers it. Which allocation follows the 2026-07-28 error code policy?
Select an answer to reveal the explanation.
Short Explanation
Think of the -32768 to -32000 block as reserved parking with the spec's name painted on it. Your vendor code parks anywhere else in the integer space. The trap is grabbing the next empty-looking spot, like -32023, which belongs to future spec versions.
Full Explanation
JSON-RPC 2.0 reserves -32768 to -32000 for pre-defined and implementation-defined errors, and the 2026-07-28 revision partitions the server-error part of that range. Codes -32000 to -32019 are legacy: they were used by implementations before the policy, new codes must not be allocated there, and new implementations should not use them at all. Codes -32020 to -32099 are reserved exclusively for the MCP specification, and implementations must not emit any code from that sub-range that the specification does not define. New error codes for purposes the specification does not define should therefore be allocated outside -32768 to -32000; the rest of the integer space is available for application-defined errors. Choosing -32023 places a vendor meaning inside the spec-reserved block, where a future revision could define it differently. Reusing -32002 is forbidden, because codes from earlier revisions remain reserved and will not be reused, and clients still interpret -32002 as resource not found. The -32000 to -32019 legacy sub-range is closed to new allocations. Exam caveat: many quota problems during tool execution are better returned as tool results with isError true so the model can adapt. Operational check: review the server's error table and confirm no custom code falls between -32768 and -32000.