Property value too large for a range index raises a 50N00 internal error, and SHOW INDEXES failureMessage leaks the full Java stack trace
Author: hkjiang26Created Sep 9, 2026Updated Sep 9, 2026
Labelsbugteam-index
Neo4j Version: neo4j:2026.07.1
Installation Method: Docker
API: Cypher (Bolt)
Steps to reproduce
($big = a 20,000-character string; no existing data needed.)
A. Index first, then oversized write:
CREATE INDEX idx_n8_live FOR (n:N8Live) ON (n.p);
CALL db.awaitIndexes();
CREATE (n:N8Live {p: $big});B. Data first, then index:
CREATE (n:N8Pop {p: $big});
CREATE INDEX idx_n8_pop FOR (n:N8Pop) ON (n.p);
SHOW INDEXES YIELD name, state, failureMessage WHERE name = 'idx_n8_pop';Boundary: identical inserts with values up to 8164 chars succeed; 8165 chars and above fail.
Expected behavior
An oversized property value is invalid user input for a range index. The failed write should surface as a clean client-side error.
Actual behavior
A: the write fails as an internal server error (driver classification = DatabaseError):
Neo.DatabaseError.Statement.ExecutionFailed (50N00)
error: general processing exception - internal error. Internal exception raised CypherExecution: Property value is too large to index, please see index documentation for limitations. Index: Index( id=6, name='idx_n8_live', type='RANGE', schema=(:N8Live {p}), indexProvider='range-1.0' ), element id: 4:..., property size: 20011.The index itself stays ONLINE; only the write is rejected.
B: the index enters FAILED state, and failureMessage exposes the raw Java exception with internal implementation stack frames:
java.lang.IllegalArgumentException: Property value is too large to index, ...
at org.neo4j.kernel.api.index.IndexValueValidator.throwSizeViolationException(IndexValueValidator.java:45)
at org.neo4j.kernel.impl.index.schema.GenericIndexKeyValidator.validate(GenericIndexKeyValidator.java:66)
at org.neo4j.kernel.impl.index.schema.BlockBasedIndexPopulator.generateUpdateKey(BlockBasedIndexPopulator.java:255)
at org.neo4j.kernel.impl.api.index.MultipleIndexPopulator$PropertyScanConsumerImpl.addFromScan(MultipleIndexPopulator.java:825)
... (further org.neo4j.kernel... / java.base/java.util.concurrent... frames; server truncates at 2000 chars)Source: neo4j/neo4j