temporalio/temporal · error

invalid filter: %s

Error message

invalid filter: %s

What it means

Error "invalid filter: %s" thrown in temporalio/temporal.

Source

Thrown at service/history/workflow/matcher/evaluator.go:44

		return nil, NewMatcherError("%s: 'limit' clause", notSupportedErrMessage)
	}

	if selectStmt.Where == nil {
		return nil, NewMatcherError("%s: 'where' clause is missing", notSupportedErrMessage)
	}

	return selectStmt.Where.Expr, nil
}

func prepareQuery(query string) (string, error) {
	query = strings.TrimSpace(query)
	if query == "" {
		return "", nil
	}

	if strings.HasPrefix(strings.ToLower(query), "where ") ||
		strings.HasPrefix(strings.ToLower(query), "select ") {
		return "", fmt.Errorf("invalid filter: %s", query)
	}

	// sqlparser can't parse just WHERE clause but instead accepts only valid SQL statement.
	query = fmt.Sprintf("select * from table1 where %s", query)

	return query, nil
}

func compareQueryString(inStr string, expectedStr string, operation string, fieldName string) (bool, error) {
	if len(inStr) == 0 {
		return false, NewMatcherError("%s cannot be empty", fieldName)
	}
	switch operation {
	case sqlparser.EqualStr:
		return expectedStr == inStr, nil
	case sqlparser.NotEqualStr:
		return expectedStr != inStr, nil
	case sqlparser.StartsWithStr:

View on GitHub (pinned to bde624efd1)

When it happens

Trigger: Thrown at service/history/workflow/matcher/evaluator.go:44 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01). Data as JSON: /api/errors/d3ad865f41ba35c9. Report an issue: GitHub.