What's wrong
Two example responses in Task Execution Errors show a tasks/get result with "resultType": "task":
specification/2026-07-28/tasks.md:846, in "Example: Task with JSON-RPC execution error"
specification/2026-07-28/tasks.md:870, in "Example: Tool call completed with tool error (isError: true)"
specification/draft/tasks.md has the same text at the same line numbers.
Both are tasks/get responses. The section says so (tasks.md:835: "The tasks/get response SHOULD include a statusMessage…"), and the text after the second example calls it "The tasks/get endpoint" (:889).
The normative text says the opposite:
tasks.md:338: "The resultType field MUST be set to "complete" on this object as it is the standard result shape for the tasks/get request."
tasks.md:102: "Servers MUST NOT set resultType to "task" on result types other than CreateTaskResult."
schema/2026-07-28/schema.ts:224 and schema/draft/schema.ts:224: GetTaskResult has resultType: "complete";.
The other tasks/get examples in the same file already use "complete" (:577, :610, :655, :733, :762).
Why it matters
Implementers copy examples. A client that switches on resultType and treats "task" as "this is a CreateTaskResult, start polling" would handle a terminal tasks/get response as a new task handle. A server built from these examples would break the MUST at :338.
Suggested fix (docs only)
--- a/specification/2026-07-28/tasks.md
+++ b/specification/2026-07-28/tasks.md
@@ -843,7 +843,7 @@
"jsonrpc": "2.0",
"id": 4,
"result": {
- "resultType": "task",
+ "resultType": "complete",
"taskId": "786512e2-9e0d-44bd-8f29-789f820fe840",
"status": "failed",
@@ -867,7 +867,7 @@
"jsonrpc": "2.0",
"id": 5,
"result": {
- "resultType": "task",
+ "resultType": "complete",
"taskId": "786512e2-9e0d-44bd-8f29-789f820fe840",
"status": "completed",
Apply the same two changes to specification/draft/tasks.md (same line numbers). Nothing normative changes.
What's wrong
Two example responses in Task Execution Errors show a
tasks/getresult with"resultType": "task":specification/2026-07-28/tasks.md:846, in "Example: Task with JSON-RPC execution error"specification/2026-07-28/tasks.md:870, in "Example: Tool call completed with tool error (isError: true)"specification/draft/tasks.mdhas the same text at the same line numbers.Both are
tasks/getresponses. The section says so (tasks.md:835: "Thetasks/getresponse SHOULD include astatusMessage…"), and the text after the second example calls it "Thetasks/getendpoint" (:889).The normative text says the opposite:
tasks.md:338: "TheresultTypefield MUST be set to"complete"on this object as it is the standard result shape for thetasks/getrequest."tasks.md:102: "Servers MUST NOT setresultTypeto"task"on result types other thanCreateTaskResult."schema/2026-07-28/schema.ts:224andschema/draft/schema.ts:224:GetTaskResulthasresultType: "complete";.The other
tasks/getexamples in the same file already use"complete"(:577,:610,:655,:733,:762).Why it matters
Implementers copy examples. A client that switches on
resultTypeand treats"task"as "this is aCreateTaskResult, start polling" would handle a terminaltasks/getresponse as a new task handle. A server built from these examples would break the MUST at:338.Suggested fix (docs only)
Apply the same two changes to
specification/draft/tasks.md(same line numbers). Nothing normative changes.