See "internal error" and "field values unsupported" error for flux query

I’m using InfluxDB 2.1.1Server: 657e183 Frontend: cc65325 under Debian 11 bullseye.
I was casing some data outliers, so setup a filter and wanted the list of host sending such data with

from(bucket: "dca")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "Cri1I2cLtc2991")
  |> filter(fn: (r) => r._field == "fpga_t")
  |> filter(fn: (r) => r._value != 0.0)
  |> keep(columns: ["host"])
  |> group()
  |> distinct(column: "host")

This query returns with

An internal error has occurred - check server logs

and in the server logs I see

  2022-01-02T17:09:49.374122+01:00 cbmin00x influxd-systemd-start.sh[765198]:
    ts=2022-01-02T16:09:49.373311Z lvl=warn
    msg="internal error not returned to client"
    log_id=0Yh4S3MW000
    handler=error_logger error="field values unsupported"

When I remove the distinct filter at the end the query works !
Also when I change r._value != 0.0 to r._value != +0.0 or r._value != -0.0 !

from(bucket: "dca")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "Cri1I2cLtc2991")
  |> filter(fn: (r) => r._field == "fpga_t")
  |> filter(fn: (r) => r._value != +0.0)
  |> keep(columns: ["host"])
  |> group()
  |> distinct(column: "host")

works, the only difference is the + in front of the 0.0 floating literal. A - works as well.

I’m really puzzled here ! How comes that

  • a minor detail of a floating point literal makes such a difference
  • that I get a “server error” at all (I’d assume that happens when assertions fail)

Any hint highly welcome.