mojira.dev
MC-301554

Management protocol doesn't support batched requests

It says it follows the spec but currently doesn’t support batched requests:
Request:

[
    {"id":1,"method":"minecraft:players"},
    {"id":2,"method":"minecraft:players"}
]

Response:

{
    "jsonrpc": "2.0",
    "error": {
        "code": -32600,
        "message": "Invalid Request"
    }
}


As per the spec:

--> [
        {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"},
        {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
        {"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": "2"},
        {"foo": "boo"},
        {"jsonrpc": "2.0", "method": "foo.get", "params": {"name": "myself"}, "id": "5"},
        {"jsonrpc": "2.0", "method": "get_data", "id": "9"} 
    ]
<-- [
        {"jsonrpc": "2.0", "result": 7, "id": "1"},
        {"jsonrpc": "2.0", "result": 19, "id": "2"},
        {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null},
        {"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "5"},
        {"jsonrpc": "2.0", "result": ["hello", 5], "id": "9"}
    ]

Attachments

Comments 2

Could it be that your request objects are missing "jsonrpc": "2.0"? In the spec under request object you must include the jsonrpc member.

I can confirm that even with jsonrpc: "2.0"included in each request in a batch, the server responds an invalid request.
Example request:

[
  {
    jsonrpc: "2.0",
    method: "minecraft:server/status",
    id: 1
  },
  {
    jsonrpc: "2.0",
    method: "minecraft:players",
    id: 2
  }
]


Response:

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32600,
    "message": "Invalid Request"
  }
}

mja00

(Unassigned)

Confirmed

Platform

Normal

Networking

25w35a

Retrieved