apache/druid · error · UnsupportedOperationException

BloomFilterAggregator does not support getFloat()

Error message

BloomFilterAggregator does not support getFloat()

What it means

This is a sentinel guard: a bloom filter has no single float representation, so BaseBloomFilterAggregator.getFloat() unconditionally throws UnsupportedOperationException. It fires when the aggregation result is requested through the primitive float accessor rather than the object accessor.

Solutions

  1. Access the bloom filter through get() and use it with the bloom-filter post-aggregators/filters
  2. Remove any configuration that treats the bloom filter aggregator as a numeric (float) metric
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:147 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07). Data as JSON: /api/errors/51d8024536c12328. Report an issue: GitHub.

Appendix: source

Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:147

  }

  @Override
  public void aggregate()
  {
    aggregate(collector, 0);
  }

  @Nullable
  @Override
  public Object get()
  {
    return collector;
  }

  @Override
  public float getFloat()
  {
    throw new UnsupportedOperationException("BloomFilterAggregator does not support getFloat()");
  }

  @Override
  public long getLong()
  {
    throw new UnsupportedOperationException("BloomFilterAggregator does not support getLong()");
  }

  @Override
  public double getDouble()
  {
    throw new UnsupportedOperationException("BloomFilterAggregator does not support getDouble()");
  }

  @Override
  public void close()
  {
    // nothing to close

View on GitHub (pinned to 9b90983fd2)