{"record":{"id":"ccea653dff9d601e","repo":"apache/druid","slug":"illegal-number-of-buckets-s-must-be-1","errorCode":null,"errorMessage":"Illegal number of buckets[%s], must be > 1","messagePattern":"Illegal number of buckets\\[(.+?)\\], must be > 1","errorType":"validation","errorClass":"org.apache.druid.java.util.common.IAE","httpStatus":null,"severity":"error","filePath":"extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/EqualBucketsPostAggregator.java","lineNumber":54,"sourceCode":"import java.util.Objects;\nimport java.util.Set;\n\n@JsonTypeName(\"equalBuckets\")\npublic class EqualBucketsPostAggregator extends ApproximateHistogramPostAggregator\n{\n  private final int numBuckets;\n\n  @JsonCreator\n  public EqualBucketsPostAggregator(\n      @JsonProperty(\"name\") String name,\n      @JsonProperty(\"fieldName\") String fieldName,\n      @JsonProperty(\"numBuckets\") int numBuckets\n  )\n  {\n    super(name, fieldName);\n    this.numBuckets = numBuckets;\n    if (this.numBuckets <= 1) {\n      throw new IAE(\"Illegal number of buckets[%s], must be > 1\", this.numBuckets);\n    }\n  }\n\n  @Override\n  public Set<String> getDependentFields()\n  {\n    return Sets.newHashSet(fieldName);\n  }\n\n  @Override\n  public Object compute(Map<String, Object> values)\n  {\n    ApproximateHistogram ah = (ApproximateHistogram) values.get(fieldName);\n    return ah.toHistogram(numBuckets);\n  }\n\n  /**\n   * actual type is {@link Histogram}","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/EqualBucketsPostAggregator.java#L36-L72","documentation":"Constructor-time validation for the 'equalBuckets' post-aggregator: numBuckets must be greater than 1 because a single (or non-positive) bucket count cannot represent a meaningful equal-bucket histogram split. It fires at config-parse time when the numBuckets property is <= 1.","triggerScenarios":"Thrown at extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/EqualBucketsPostAggregator.java:54 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set numBuckets to an integer greater than 1 in the post-aggregator spec.","Verify the query JSON passes numBuckets explicitly rather than relying on a default of 0."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}