{
  "topic": "errors.MALFORMED_REQUEST",
  "path": [
    "errors",
    "MALFORMED_REQUEST"
  ],
  "title": "MALFORMED_REQUEST — grouped-stats request body could not be decoded",
  "synopsis": "Raised by `POST /api/entity/stats/{entityName}/{modelVersion}/query` when the body cannot be read from the connection, is not valid JSON, or does not decode into the request shape. Decoding is strict: an unrecognised top-level field is rejected rather than ignored, so a misspelled `agregations` fails here instead of quietly running with no aggregations. A `pointInTime` that is not RFC 3339 also lands here, because it is rejected while the body is being decoded — there is no separate code for it.",
  "body": "# errors.MALFORMED_REQUEST\n\n## NAME\n\nMALFORMED_REQUEST — the grouped-statistics request body could not be read or decoded.\n\n## SYNOPSIS\n\nHTTP: `400` `Bad Request`. Retryable: `no`.\n\n## DESCRIPTION\n\nRaised by `POST /api/entity/stats/{entityName}/{modelVersion}/query` when the body cannot be read from the connection, is not valid JSON, or does not decode into the request shape. Decoding is strict: an unrecognised top-level field is rejected rather than ignored, so a misspelled `agregations` fails here instead of quietly running with no aggregations. A `pointInTime` that is not RFC 3339 also lands here, because it is rejected while the body is being decoded — there is no separate code for it.\n\nThe message carries the decoder's reason. Correct the body and resend.\n\nA body over the 10 MiB ceiling is a different outcome: `413` with `BAD_REQUEST`. Field-level problems that survive decoding — an empty `groupBy`, a bad JSONPath, an unknown aggregation operator — have their own codes.\n\nOther entity endpoints report an undecodable body as `BAD_REQUEST`; this code is specific to the grouped-statistics endpoint.\n\n## SEE ALSO\n\n- errors\n- crud\n- errors.BAD_REQUEST\n",
  "sections": [
    {
      "name": "NAME",
      "body": "MALFORMED_REQUEST — the grouped-statistics request body could not be read or decoded."
    },
    {
      "name": "SYNOPSIS",
      "body": "HTTP: `400` `Bad Request`. Retryable: `no`."
    },
    {
      "name": "DESCRIPTION",
      "body": "Raised by `POST /api/entity/stats/{entityName}/{modelVersion}/query` when the body cannot be read from the connection, is not valid JSON, or does not decode into the request shape. Decoding is strict: an unrecognised top-level field is rejected rather than ignored, so a misspelled `agregations` fails here instead of quietly running with no aggregations. A `pointInTime` that is not RFC 3339 also lands here, because it is rejected while the body is being decoded — there is no separate code for it.\n\nThe message carries the decoder's reason. Correct the body and resend.\n\nA body over the 10 MiB ceiling is a different outcome: `413` with `BAD_REQUEST`. Field-level problems that survive decoding — an empty `groupBy`, a bad JSONPath, an unknown aggregation operator — have their own codes.\n\nOther entity endpoints report an undecodable body as `BAD_REQUEST`; this code is specific to the grouped-statistics endpoint."
    },
    {
      "name": "SEE ALSO",
      "body": "- errors\n- crud\n- errors.BAD_REQUEST"
    }
  ],
  "see_also": [
    "errors",
    "crud",
    "errors.BAD_REQUEST"
  ],
  "stability": "stable",
  "actions": []
}
