Skip to content

Terms Aggregation: multi-typed keyword+ip field cannot contain non-ip values #129989

@alex-spies

Description

@alex-spies

Elasticsearch Version

Serverless, main, 9.0 and maybe more

Installed Plugins

No response

Java Version

bundled

OS Version

Problem Description

No reply from server + ERROR logs when performing a terms aggregation on a mixed keyword+ip field, if it contains values that are not valid ips:

Steps to Reproduce

Reproduced on Serverless Production, but weirdly failed to repro on ECH 9.0.3

PUT /test
{
  "mappings": {
        "properties": {
          "field": { "type":"ip"}     
  }}  
}

PUT /test2
{
  "mappings": {
        "properties": {
          "field": { "type":"keyword"}     
  }}  
}

POST /test2/_doc
{
  "field":"foo"
}

POST /test*/_search
{
  "size": 0,
  "aggs": {
    "counts": {
      "terms": {
        "field": "field"
      }
    }
  }
}

Logs (if relevant)

2025-06-25T11:10:50,010][ERROR][o.e.h.n.Netty4HttpPipeliningHandler] [runTask-0] caught exception while encoding response chunk, closing connection [id: 0x35c8cbf6, L:/[0:0:0:0:0:0:0:1]:9200 - R:/[0:0:0:0:0:0:0:1]:45264] java.lang.IllegalArgumentException: Failed trying to format bytes as IP address.  Possibly caused by a mapping mismatch
        at [email protected]/org.elasticsearch.search.DocValueFormat$IpDocValueFormat.format(DocValueFormat.java:495)
        at [email protected]/org.elasticsearch.search.DocValueFormat$IpDocValueFormat.format(DocValueFormat.java:474)
        at [email protected]/org.elasticsearch.search.aggregations.bucket.terms.StringTerms$Bucket.getKeyAsString(StringTerms.java:89)
        at [email protected]/org.elasticsearch.search.aggregations.bucket.terms.StringTerms$Bucket.keyToXContent(StringTerms.java:102)
        at [email protected]/org.elasticsearch.search.aggregations.bucket.terms.InternalTerms$Bucket.bucketToXContent(InternalTerms.java:116)
        at [email protected]/org.elasticsearch.search.aggregations.bucket.terms.AbstractInternalTerms.doXContentCommon(AbstractInternalTerms.java:380)
        at [email protected]/org.elasticsearch.search.aggregations.bucket.terms.InternalMappedTerms.doXContentBody(InternalMappedTerms.java:156)
        at [email protected]/org.elasticsearch.search.aggregations.InternalAggregation.toXContent(InternalAggregation.java:242)
        at [email protected]/org.elasticsearch.search.aggregations.InternalAggregations.toXContentInternal(InternalAggregations.java:119)
        at [email protected]/org.elasticsearch.search.aggregations.InternalAggregations.toXContent(InternalAggregations.java:110)
        at [email protected]/org.elasticsearch.rest.ChunkedRestResponseBodyPart$1.encodeChunk(ChunkedRestResponseBodyPart.java:161)
        at [email protected]/org.elasticsearch.rest.RestController$EncodedLengthTrackingChunkedRestResponseBodyPart.encodeChunk(RestController.java:1026)
        at [email protected]/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.writeChunk(Netty4HttpPipeliningHandler.java:436)
        at [email protected]/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.doWriteChunkedResponse(Netty4HttpPipeliningHandler.java:263)
        at [email protected]/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.doWrite(Netty4HttpPipeliningHandler.java:231)
        at [email protected]/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.write(Netty4HttpPipeliningHandler.java:184)
        at [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
        at [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956)
        at [email protected]/io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1263)
        at [email protected]/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
        at [email protected]/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
        at [email protected]/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
        at [email protected]/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
        at [email protected]/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
        at [email protected]/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at java.base/java.lang.Thread.run(Thread.java:1447)
Caused by: java.lang.IllegalArgumentException: encoded bytes are of incorrect length
        at [email protected]/org.apache.lucene.document.InetAddressPoint.decode(InetAddressPoint.java:190)
        at [email protected]/org.elasticsearch.search.DocValueFormat$IpDocValueFormat.format(DocValueFormat.java:492)
        ... 25 more
Caused by: java.net.UnknownHostException: addr is of illegal length
        at java.base/java.net.InetAddress.getByAddress(InetAddress.java:1442)
        at java.base/java.net.InetAddress.getByAddress(InetAddress.java:1733)
        at [email protected]/org.apache.lucene.document.InetAddressPoint.decode(InetAddressPoint.java:187)
        ... 26 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions