Skip to content
Settings

DUPLICATE_AGGREGATION_ALIAS — two aggregations claim the same response key

cyoda-go version 0.8.4

DUPLICATE_AGGREGATION_ALIAS — two aggregations over different (op, field) pairs resolve to the same key in the response.

HTTP: 400 Bad Request. Retryable: no.

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.

The collision can arise between two explicit aliases, or between an explicit alias and a synthesized one (as: "sum_amount" on one entry alongside an unaliased sum over $.amount on another). The message carries the contested alias.

Repeating the same (op, field) pair does not raise this — identical pairs are deduplicated silently, since both would compute the same value.

Give the colliding aggregations distinct as aliases.

  • errors
  • crud
  • errors.INVALID_AGGREGATION_OP
  • errors.INVALID_AGGREGATION_FIELD
  • 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_OP — 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.
  • 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.