cube-js/cube · error · UserError

Operator ${f.operator} not supported for filter: ${JSON.stri

Error message

Operator ${f.operator} not supported for filter: ${JSON.stringify(f)}

What it means

Whitelist guard in normalizeQueryFilters: the filter's `operator` value is present but not in the supported `operators` list. It fires when clients send misspelled or unsupported operator names for a filter.

Source

Thrown at packages/cubejs-api-gateway/src/query.js:373

const normalizeQueryFilters = (filter, timezone) => (
  filter.map(f => {
    const res = { ...f };
    if (f.or) {
      res.or = normalizeQueryFilters(f.or, timezone);
      return res;
    }
    if (f.and) {
      res.and = normalizeQueryFilters(f.and, timezone);
      return res;
    }

    if (!f.operator) {
      throw new UserError(`Operator required for filter: ${JSON.stringify(f)}`);
    }

    if (operators.indexOf(f.operator) === -1) {
      throw new UserError(`Operator ${f.operator} not supported for filter: ${JSON.stringify(f)}`);
    }

    if ((!f.values || f.values.length === 0) && ['set', 'notSet', 'measureFilter'].indexOf(f.operator) === -1) {
      throw new UserError(`Values required for filter: ${JSON.stringify(f)}`);
    }

    if (f.values) {
      res.values = f.values.map(v => (v != null ? v.toString() : v));
    }

    if (f.dimension) {
      res.member = f.dimension;
      delete res.dimension;
    }

    return normalizeDateFilterValues(res, timezone);
  })
);

View on GitHub (pinned to 7d981676b3)

Solutions

  1. Replace the operator with one from the supported set (equals, notEquals, contains, notContains, set, notSet, inDateRange, beforeOrOnDate, afterOrOnDate, measureFilter, etc.).
  2. Check for typos or casing differences in the operator string.
  3. Consult the Cube REST API filter documentation for the exact operator names.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/cubejs-api-gateway/src/query.js:373 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02). Data as JSON: /api/errors/13ee2ba1e289b0eb. Report an issue: GitHub.