Skip to content

SqueakQL errors

SqueakQL separates parsing from semantic validation. Errors include a stable code, message, line, column, and often the offending token or suggestion.

Unknown field

SQUEAKQL_UNKNOWN_FIELD
Unknown SqueakQL field "assigned". Did you mean "assignee"?
line 1, column 1

Type mismatch

SQUEAKQL_UNSUPPORTED_OPERATOR
ILIKE is not supported for updated_at.

Common codes

Code Meaning
SQUEAKQL_SYNTAX_ERROR Tokens do not form the restricted grammar
SQUEAKQL_UNKNOWN_FIELD Field is not in the public Work Item registry
SQUEAKQL_UNKNOWN_FUNCTION Function is not explicitly implemented
SQUEAKQL_TYPE_MISMATCH Value or operator does not fit the field type
SQUEAKQL_UNSUPPORTED_OPERATOR Field does not support that operator or sort
SQUEAKQL_INVALID_VALUE Enum, user, date, string, or interval value is invalid
SQUEAKQL_QUERY_TOO_COMPLEX A centralized parser or complexity limit was exceeded

The validation API returns these diagnostics without returning generated SQL. Unexpected database failures use Hamstik’s normal server error handling.

Diagnostics use one-based lines and columns, with an exclusive end position when supplied. Columns count UTF-16 code units, matching the editor; an emoji may occupy two units. Tabs count as one unit. Both LF and CRLF line endings are supported.

Missing, blank, non-string, or oversized query request fields produce the normal HTTP 400 VALIDATION_ERROR before language validation. Oversized JSON bodies produce HTTP 413. Search language failures are HTTP 400; validation language failures return HTTP 200 with valid: false and the same diagnostics.

For example, this query is invalid:

updated_at ILIKE '%foo%'