#13975·neo4j

Out-of-range literal in CREATE INDEX ... OPTIONS {indexConfig} raises 50N00 and echoes internal AST to the client

Author: hkjiang26Created Sep 11, 2026Updated Sep 11, 2026
Labelsbugteam-cypherGithub Issue

Neo4j Version: neo4j:2026.07.1

Installation Method: Docker

API: Cypher (Bolt / HTTP)

Steps to reproduce

  1. On a fresh database, run:
cypher
CREATE INDEX idx_x IF NOT EXISTS FOR (n:L) ON (n.p) OPTIONS {indexConfig: {`vector.dimensions`: 99999999999999999999}}

Or any index-config expression that throws during evaluation, e.g.:

cypher
CREATE POINT INDEX idx_y IF NOT EXISTS FOR (n:L) ON (n.p) OPTIONS {indexConfig: {`spatial.cartesian.min`: [99999999999999999999, 0.0]}}
CREATE INDEX idx_z IF NOT EXISTS FOR (n:L) ON (n.p) OPTIONS {indexConfig: {`vector.dimensions`: 1/0}}

Expected behavior

The same literal in a normal expression is a clean client error — RETURN 99999999999999999999SyntaxError "integer is too large", RETURN 1/0ArithmeticError 22012, RETURN 9223372036854775807 + 1ArithmeticError 22003. The OPTIONS context should produce the same client-class error (22xxx).

Actual behavior

Neo.DatabaseError.Statement.ExecutionFailed (50N00)
Failed to evaluate expression SignedDecimalIntegerLiteral(99999999999999999999)