langchain-ai/langgraph · error · ValueError

Unsupported operator

Error message

Unsupported operator: {operator}

What it means

Operator dispatch in the in-memory store's filter evaluator _apply_operator (mirrors PostgreSQL JSONB semantics for search filters): the operator key in a filter is not one of the implemented set ($eq, $ne, $gt, $gte, $lt, $lte, and the remaining range/set operators handled in later branches such as $between, $like, $ilike, $in, $nin). Filters are walked recursively, so an unsupported operator anywhere in a nested filter dict triggers this.

Solutions

  1. Use the documented filter operators: $eq, $ne, $gt, $gte, $lt, $lte, $between, $like, $ilike, $in, $nin
  2. Replace unsupported operators (e.g. $regex) with $like/$ilike patterns or pre-filter values client-side
  3. Check nested filter dicts for misspelled operator keys
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at libs/checkpoint/langgraph/store/memory/__init__.py:592 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of langchain-ai/langgraph@38031739e5 (2026-08-26). Data as JSON: /api/errors/f0ddc03cb5d6213e. Report an issue: GitHub.

Appendix: source

Thrown at libs/checkpoint/langgraph/store/memory/__init__.py:592

        return item_value == filter_value


def _apply_operator(value: Any, operator: str, op_value: Any) -> bool:
    """Apply a comparison operator, matching PostgreSQL's JSONB behavior."""
    if operator == "$eq":
        return value == op_value
    elif operator == "$gt":
        return float(value) > float(op_value)
    elif operator == "$gte":
        return float(value) >= float(op_value)
    elif operator == "$lt":
        return float(value) < float(op_value)
    elif operator == "$lte":
        return float(value) <= float(op_value)
    elif operator == "$ne":
        return value != op_value
    else:
        raise ValueError(f"Unsupported operator: {operator}")

View on GitHub (pinned to 38031739e5)