Skip to content

Commit cc88ea5

Browse files
renetapopovaLojjsNataliaIvakinahvublidiazuin
authored
DOCS-279 Publish 2026.01.3 (#452)
Co-authored-by: Louise Berglund <louise.berglund@neo4j.com> Co-authored-by: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> Co-authored-by: Louise Söderström <louise.matematik@gmail.com> Co-authored-by: Hannes Voigt <30618026+hvub@users.noreply.github.com> Co-authored-by: Lidia Zuin <102308961+lidiazuin@users.noreply.github.com> Co-authored-by: Alex Fox Gill <email@alexfoxgill.com> Co-authored-by: Neil Dewhurst <neil.dewhurst@neo4j.com> Co-authored-by: Lasse Heemann <7661319+l-heemann@users.noreply.github.com> Co-authored-by: Gem Lamont <106068376+gem-neo4j@users.noreply.github.com> Co-authored-by: JoelBergstrand <joel.bergstrand@hotmail.com> Co-authored-by: Nick Giles <100630647+nick-giles-neo@users.noreply.github.com> Co-authored-by: Therese Magnusson <therese.magnusson@neotechnology.com> Co-authored-by: ConorNeo <121866402+ConorNeo@users.noreply.github.com> Co-authored-by: Balazs Lendvai <56266523+gfx54b@users.noreply.github.com> Co-authored-by: Satia Herfert <satiaherfert@gmx.de> Co-authored-by: Olivia Ytterbrink <olivia@ytterbrink.com> Co-authored-by: Greg Woods <42248895+gjmwoods@users.noreply.github.com> Co-authored-by: MishaDemianenko <12656787+MishaDemianenko@users.noreply.github.com> Co-authored-by: Antonio Barcélos <antonio.barcelos@neo4j.com> Co-authored-by: Evelina Danielsson <evelina.danielsson@gmail.com> Co-authored-by: Pontus Melke <pontusmelke@gmail.com> Co-authored-by: Jack Waudby <33488812+jackwaudby@users.noreply.github.com> Co-authored-by: Mark Dixon <1756429+mnd999@users.noreply.github.com> Co-authored-by: Finbar Good <dogofbrian@users.noreply.github.com> Co-authored-by: Therese Magnusson <scout.therese@gmail.com> Co-authored-by: Love Kristofer Leifland <kristofer.leifland@gmail.com> Co-authored-by: Phil Wright <95368282+phil198@users.noreply.github.com> Co-authored-by: Hannes Sandberg <hannes.sandberg@neotechnology.com> Co-authored-by: Filip Hedén <perfilip@proton.me> Co-authored-by: Georgiy Kargapolov <1788612+inmost-light@users.noreply.github.com> Co-authored-by: Georgiy Kargapolov <inmost-light@users.noreply.github.com> Co-authored-by: Matthew Parnell <matt@parnmatt.co.uk> Co-authored-by: neo-harshg <harsh.gupta@neo4j.com>
1 parent f62e41a commit cc88ea5

File tree

16 files changed

+719
-20
lines changed

16 files changed

+719
-20
lines changed

antora.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
name: status-codes
22
title: Status Codes for Errors & Notifications
3-
version: '2025.12'
3+
version: '2026.01'
44
start_page: ROOT:index.adoc
55
nav:
66
- modules/ROOT/content-nav.adoc
77
asciidoc:
88
attributes:
99
page-origin-private: false
10-
neo4j-version: '2025.12'
11-
neo4j-version-exact: '2025.12.1'
12-
neo4j-buildnumber: '2025.12'
10+
neo4j-version: '2026.01'
11+
neo4j-version-exact: '2026.01.3'
12+
neo4j-buildnumber: '2026.01'

modules/ROOT/content-nav.adoc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@
145145
**** xref:errors/gql-errors/22NA9.adoc[]
146146
**** xref:errors/gql-errors/22NAA.adoc[]
147147
**** xref:errors/gql-errors/22NAB.adoc[]
148+
**** xref:errors/gql-errors/22NAC.adoc[]
149+
**** xref:errors/gql-errors/22NAD.adoc[]
150+
**** xref:errors/gql-errors/22NAE.adoc[]
148151
**** xref:errors/gql-errors/22NB0.adoc[]
149152
**** xref:errors/gql-errors/22NB1.adoc[]
150153
**** xref:errors/gql-errors/22NB2.adoc[]
@@ -285,6 +288,11 @@
285288
**** xref:errors/gql-errors/42I66.adoc[]
286289
**** xref:errors/gql-errors/42I67.adoc[]
287290
**** xref:errors/gql-errors/42I68.adoc[]
291+
**** xref:errors/gql-errors/42I69.adoc[]
292+
**** xref:errors/gql-errors/42I70.adoc[]
293+
**** xref:errors/gql-errors/42I71.adoc[]
294+
**** xref:errors/gql-errors/42I72.adoc[]
295+
**** xref:errors/gql-errors/42I76.adoc[]
288296
**** xref:errors/gql-errors/42N00.adoc[]
289297
**** xref:errors/gql-errors/42N01.adoc[]
290298
**** xref:errors/gql-errors/42N02.adoc[]

modules/ROOT/pages/errors/all-errors.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ If you want to drop the index, you must also drop the constraint.
149149
| Neo.ClientError.Schema.RepeatedRelationshipTypeInSchema
150150
| Unable to create an index or a constraint because the schema had a repeated relationship type.
151151

152+
| Neo.ClientError.Schema.SchemaRuleEntrySizeLimitError
153+
| A schema rule entry exceeded the maximum allowed size.
154+
152155
| Neo.ClientError.Schema.TokenLengthError
153156
| A token name, such as a label, relationship type or property key is too long
154157

@@ -491,4 +494,3 @@ Please restore from backup.
491494
| The database was unable to terminate the transaction.
492495

493496
|===
494-

modules/ROOT/pages/errors/gql-errors/22N31.adoc

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,50 @@
22

33

44
== Status description
5-
error: data exception - invalid properties in merge pattern. `MERGE` cannot be used with graph element property values that are null or NaN.
5+
error: data exception - invalid properties in merge pattern. The `{ <<entityType>> }` property `{ <<propKey>> }` in `{ <<pat>> }` is invalid. `MERGE` cannot be used with a graph element property value that is `{ <<value>> }`.
6+
7+
== Explanation
8+
This error occurs when a `MERGE` pattern includes a node or relationship property value that is not allowed, such as `null` or `NaN`.
9+
Because `MERGE` must be able to match or create a concrete graph element, these invalid values are rejected.
10+
11+
== Example scenarios
12+
13+
Let's take the following example scenarios:
14+
15+
=== Null property value in a `MERGE` pattern
16+
For example, try to merge a node with a `null` property value as follows:
17+
18+
[source,cypher]
19+
----
20+
MERGE (p:Person {age: null})
21+
----
22+
23+
The query returns an error with GQLSTATUS 22N31 and the status description:
24+
25+
[source]
26+
----
27+
error: data exception - invalid properties in merge pattern. The node property 'age' in '(:Person {age: null})' is invalid. `MERGE` cannot be used with a graph element property value that is null.
28+
----
29+
30+
In this case, provide a concrete value for the property, or remove it from the `MERGE` pattern.
31+
32+
=== NaN property value in a `MERGE` pattern
33+
For example, try to merge a relationship with a `NaN` property value as follows:
34+
35+
[source,cypher]
36+
----
37+
WITH 0.0/0.0 AS nan
38+
MERGE (a:Person)-[:KNOWS {score: nan}]->(b:Person)
39+
----
40+
41+
The query returns an error with GQLSTATUS 22N31 and the status description:
42+
43+
[source]
44+
----
45+
error: data exception - invalid properties in merge pattern. The relationship property 'score' in '(:Person)-[:KNOWS {score: NaN}]->(:Person)' is invalid. 'MERGE' cannot be used with graph element property value that is NaN.
46+
----
47+
48+
In this case, provide a numeric value for the property, or remove it from the `MERGE` pattern.
649

750

851
ifndef::backend-pdf[]
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
= 22NAC
2+
3+
== Status description
4+
error: data exception - characters after quote in CSV field. Characters after an ending quote in a CSV field are not supported. See `{ <<input>> }` at position `{ <<pos>> }`. This is read as `{ <<variable>> }`.
5+
6+
== Explanation
7+
When a CSV file contains a field that starts with a quote and has content after the ending quote, the file is formatted incorrectly, and trying to read such a file with `LOAD CSV` will result in an error.
8+
9+
== Example scenario
10+
11+
For example, let's say you have a CSV file, called `somefile.csv`, with the following content:
12+
13+
[source,csv]
14+
----
15+
x,y
16+
"x",1
17+
"y"y,2
18+
----
19+
20+
Then, when you run the following query:
21+
22+
[source,cypher]
23+
----
24+
LOAD CSV 'somefile.csv' AS line
25+
RETURN count(line)
26+
----
27+
28+
you will receive an error with GQLSTATUS 22NAC and status description:
29+
30+
[source]
31+
----
32+
error: data exception - characters after quote in CSV field. Characters after an ending quote in a CSV field are not supported. See 'somefile.csv' at position 14. This is read as `y"y` .
33+
----
34+
35+
ifndef::backend-pdf[]
36+
[discrete.glossary]
37+
== Glossary
38+
39+
include::partial$glossary.adoc[]
40+
endif::[]
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
= 22NAD
2+
3+
== Status description
4+
error: data exception - missing end quote in CSV field. Missing end quote at position `{ <<pos>> }` in `{ <<input>> }`.
5+
6+
== Explanation
7+
When a CSV file contains a field that starts with a quote but misses an ending quote, the file is formatted incorrectly and trying to read such a file with `LOAD CSV` will result in an error.
8+
9+
== Example scenario
10+
11+
For example, let's say you have a CSV file, called `somefile.csv`, with the following content:
12+
13+
[source,csv]
14+
----
15+
x,y
16+
"x",1
17+
"y,2
18+
----
19+
20+
Then, when you run the following query:
21+
22+
[source,cypher]
23+
----
24+
LOAD CSV 'somefile.csv' AS line
25+
RETURN count(line)
26+
----
27+
28+
you will receive an error with GQLSTATUS 22NAD and status description:
29+
30+
[source]
31+
----
32+
error: data exception - missing end quote in CSV field. Missing end quote at position 15 in 'somefile.csv'.
33+
----
34+
35+
ifndef::backend-pdf[]
36+
[discrete.glossary]
37+
== Glossary
38+
39+
include::partial$glossary.adoc[]
40+
endif::[]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
= 22NAE
2+
3+
== Status description
4+
error: data exception - multi-line field in illegal CSV context. Multi-line fields are illegal in this context. Verify that there is not a missing end quote in `{ <<input>> }` at position `{ <<pos>> }`.
5+
6+
== Explanation
7+
This error is thrown when a CSV file contains a field that spans multiple lines, but the context in which it is being read does not allow multi-line fields.
8+
This often occurs when there is a missing end quote in a quoted field.
9+
10+
== Example scenario
11+
12+
For example, let's say you have a CSV file, called `somefile.csv`, with the following content:
13+
[source,csv]
14+
----
15+
x,y
16+
"x",1
17+
"y
18+
",2
19+
----
20+
21+
And that the `neo4j` database logging is configured with specific allowed multiline files, but where `somefile.csv` is not among them.
22+
23+
Then, when you run the following query:
24+
[source,cypher]
25+
----
26+
LOAD CSV 'somefile.csv' AS line
27+
RETURN count(line)
28+
----
29+
30+
you will receive an error with GQLSTATUS 22NAE and status description:
31+
[source]
32+
----
33+
error: data exception - multi-line field in illegal CSV context. Multi-line fields are illegal in this context. Verify that there is not a missing end quote in 'somefile.csv' at position 15.
34+
----
35+
36+
ifndef::backend-pdf[]
37+
[discrete.glossary]
38+
== Glossary
39+
40+
include::partial$glossary.adoc[]
41+
endif::[]
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
= 42I69
2+
3+
== Status description
4+
error: syntax error or access rule violation - invalid search variable reference. `{ <<variable>> }` must reference a variable from the same `MATCH` statement.
5+
6+
== Example scenario
7+
8+
For example, when trying to use a variable from a previous `MATCH` statement as variable reference in a `SEARCH` clause:
9+
10+
[source,cypher]
11+
----
12+
CYPHER 25
13+
MATCH (movie:Movie)
14+
MATCH (m:Movie {title:'Matrix, The'})
15+
SEARCH movie IN (
16+
VECTOR INDEX moviePlots
17+
FOR [1, 2, 3]
18+
LIMIT 5
19+
)
20+
RETURN movie.title AS title
21+
----
22+
23+
You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I69 and status description:
24+
25+
[source]
26+
----
27+
error: syntax error or access rule violation - invalid search variable reference. `movie` must reference a variable from the same `MATCH` statement.
28+
----
29+
30+
ifndef::backend-pdf[]
31+
[discrete.glossary]
32+
== Glossary
33+
34+
include::partial$glossary.adoc[]
35+
endif::[]
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
= 42I70
2+
3+
== Status description
4+
error: syntax error or access rule violation - search clause with multiple bound variables. In order to have a search clause, a `MATCH` statement can only have one bound variable.
5+
6+
[#_example_scenario]
7+
== Example scenario
8+
9+
For example, when trying to use a `SEARCH` clause in a `MATCH` statement with more than one bound variable:
10+
11+
[source,cypher]
12+
----
13+
Cypher 25
14+
MATCH (movie:Movie)-[r]->()
15+
SEARCH movie IN (
16+
VECTOR INDEX moviePlots
17+
FOR [1, 2, 3]
18+
LIMIT 5
19+
)
20+
RETURN movie.title AS title, r.prop AS prop
21+
----
22+
23+
You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I70.
24+
25+
== Possible solution
26+
The first iteration of the `SEARCH` clause comes with many restrictions on the `MATCH` statement.
27+
It is likely that some of these restriction will be lifted in future versions of Neo4j.
28+
For the time being, the Cypher query under xref:errors/gql-errors/42I70.adoc#_example_scenario[Example scenario] can be rewritten like this:
29+
30+
[source,cypher]
31+
----
32+
CYPHER 25
33+
MATCH (movie:Movie)
34+
SEARCH movie IN (
35+
VECTOR INDEX moviePlots
36+
FOR [1, 2, 3]
37+
LIMIT 5
38+
)
39+
MATCH (movie)-[r]->()
40+
RETURN movie.title AS title, r.prop AS prop
41+
----
42+
43+
ifndef::backend-pdf[]
44+
[discrete.glossary]
45+
== Glossary
46+
47+
include::partial$glossary.adoc[]
48+
endif::[]
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
= 42I71
2+
3+
== Status description
4+
error: syntax error or access rule violation - search clause with invalid predicates. In order to have a search clause, a `MATCH` statement can only have predicates on the bound node or relationship.
5+
6+
[#_example_scenario]
7+
== Example scenario
8+
9+
For example, when trying to use a `SEARCH` clause in a `MATCH` statement with predicates on other parts of the pattern than the bound variable:
10+
11+
[source,cypher]
12+
----
13+
CYPHER 25
14+
MATCH (movie:Movie)-[]->(:Actor)
15+
SEARCH movie IN (
16+
VECTOR INDEX moviePlots
17+
FOR [1, 2, 3]
18+
LIMIT 5
19+
)
20+
RETURN movie.title AS title
21+
----
22+
23+
You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I71.
24+
25+
== Possible solution
26+
The first iteration of the `SEARCH` clause comes with many restrictions on the `MATCH` statement.
27+
It is likely that some of these restriction will be lifted in future versions of Neo4j.
28+
For the time being, the Cypher query under xref:errors/gql-errors/42I71.adoc#_example_scenario[Example scenario] can be rewritten like this:
29+
30+
[source,cypher]
31+
----
32+
CYPHER 25
33+
MATCH (movie:Movie)
34+
SEARCH movie IN (
35+
VECTOR INDEX moviePlots
36+
FOR [1, 2, 3]
37+
LIMIT 5
38+
)
39+
MATCH (movie)-[]->(:Actor)
40+
RETURN movie.title AS title
41+
----
42+
43+
ifndef::backend-pdf[]
44+
[discrete.glossary]
45+
== Glossary
46+
47+
include::partial$glossary.adoc[]
48+
endif::[]

0 commit comments

Comments
 (0)