apache/druid · error · UnsupportedOperationException
BloomFilterAggregator does not support getLong()
Error message
BloomFilterAggregator does not support getLong()
What it means
Sentinel guard in BaseBloomFilterAggregator: getLong() is never implemented because the aggregated value is a BloomFilter object, not a long. The exception fires when something requests the bloom-filter metric through the primitive long accessor — typically a misconfigured query or downstream consumer expecting a numeric metric.
Solutions
- Use get() to obtain the BloomFilter and apply the bloom filter test filter/post-aggregator instead
- Ensure the aggregator is not referenced as a long-typed metric in queries or alerts
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:153 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/2fe2842936f7cde6.
Report an issue: GitHub.
Appendix: source
Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:153
}
@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
}
@Override
public void inspectRuntimeShape(RuntimeShapeInspector inspector)
{
inspector.visit("selector", selector);View on GitHub (pinned to 9b90983fd2)