Skip to content
Settings

INVALID_AGGREGATION_OP — unknown aggregation operator

cyoda-go version 0.8.4

INVALID_AGGREGATION_OP — an aggregation’s op is not one of the supported operators.

HTTP: 400 Bad Request. Retryable: no.

Raised by POST /api/entity/stats/{entityName}/{modelVersion}/query. The supported operators are sum, avg, min, max and stdev, spelled lowercase. Anything else — including count, an uppercase spelling, or a typo — is rejected, and the message echoes the value that was sent.

There is no count operator because every bucket already carries count. stdev is the sample standard deviation (divisor n − 1) and is null when a bucket has fewer than two numeric samples.

  • errors
  • crud
  • errors.INVALID_AGGREGATION_FIELD
  • errors.DUPLICATE_AGGREGATION_ALIAS
  • cyoda help errors — Every error response from the Cyoda REST API carries a structured errorCode in the properties object. Multiple codes may share the same HTTP status. Programmatic handling keys on errorCode, not HTTP status.
  • cyoda help crud — Entities are instances of models. Each entity has a UUID, a model reference (entityName, modelVersion), and a lifecycle state managed by the workflow engine. Creating an entity requires the referenced model to be in LOCKED state. All write operations run within a Cyoda transaction and return a transactionId alongside the affected entity IDs.
  • cyoda help errors INVALID_AGGREGATION_FIELD — Raised by POST /api/entity/stats/{entityName}/{modelVersion}/query. An aggregation field obeys exactly the grammar a groupBy path does — a required $. leader followed by dot-separated segments of ASCII letters, digits, _ and -, with no bracket-quoted access, array subscript or projection, recursive descent, whitespace or non-ASCII character. See cyoda help errors INVALID_GROUP_BY_PATH for the grammar and the rejected spellings; the message names the offending field and the reason.
  • cyoda help errors DUPLICATE_AGGREGATION_ALIAS — Raised by POST /api/entity/stats/{entityName}/{modelVersion}/query. Each bucket’s aggregations object is keyed by the aggregation’s as alias, or — when as is omitted — by a synthesized <op>_<field> with the leading $. stripped, so {"op":"sum","field":"$.amount"} becomes sum_amount. Two aggregations that compute different things cannot share one key, because only one of the two values could be returned under it.