You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/ROOT/pages/changelogs.adoc
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,18 @@
1
1
:description: This page lists all changes to status codes per Neo4j version.
2
2
= Changes to status codes per Neo4j version
3
3
4
+
== Neo4j 5.26
5
+
6
+
**Changed:**
7
+
Using differently ordered return items in a `UNION [ALL]` clause has been undeprecated following cost-benefit analysis and valuable user feedback.
8
+
9
+
== Neo4j 5.25
10
+
11
+
**New:**
12
+
13
+
Starting from 5.25, the query log includes the GQL error information under the JSON object `errorInfo`.
14
+
For more information, see link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations Manual -> GQL error information].
Copy file name to clipboardExpand all lines: modules/ROOT/pages/errors/all-errors.adoc
+8-9Lines changed: 8 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,18 @@
1
-
:description: The legacy error codes for Neo4j 5.
1
+
:description: The error codes for Neo4j 5.
2
2
3
3
4
4
[[neo4j-errors]]
5
-
= List of legacy server error codes
5
+
= List of Neo4j codes
6
6
7
-
This page lists the legacy server error codes, also known as Neo4j status codes.
8
-
These will be replaced by xref:errors/gql-errors.adoc[GQLSTATUS server error codes].
7
+
This page lists the current Neo4j error codes, which will be replaced by xref:errors/gql-errors.adoc[GQLSTATUS error codes] in the future.
9
8
10
9
Error codes are returned by the server when the execution of a query fails.
11
10
They always have the severity level `ERROR`.
12
11
Errors are grouped based on the type of the Neo4j status code:
13
12
14
13
Client errors::
15
-
These errors are caused by the client and are usually related to the request itself.
16
-
The Neo4j status codes for client errors have the prefix `Neo.ClientError`.
14
+
These errors are caused by the client (user input or user application) and are usually related to the request itself.
15
+
The Neo4j codes for client errors have the prefix `Neo.ClientError`.
17
16
18
17
Transient errors::
19
18
These errors are detected by the server and are usually related to some kind of database unavailability, such as limits reached, out-of-memory, timeouts, etc.
@@ -33,7 +32,7 @@ This is a complete list of all client errors Neo4j may return, and what they mea
Copy file name to clipboardExpand all lines: modules/ROOT/pages/errors/index.adoc
+31-25Lines changed: 31 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,14 @@ The Neo4j DBMS returns a server error to indicate that the outcome of a Cypher q
6
6
7
7
Starting from version 5.25, the Neo4j error codes have an additional GQL-status object along with the Neo4j exception that provides information about the status of a Cypher query or command execution in compliance with the link:https://www.iso.org/standard/76120.html[ISO/IEC 39075:2024(en) - Information technology - Database languages - GQL Standard].
8
8
9
+
[NOTE]
10
+
====
11
+
This additional GQL-status object is currently displayed only in the query log.
12
+
For more information, see link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations Manual -> GQL error information].
13
+
====
14
+
9
15
This page describes the GQL-status object and the Neo4j error frameworks, their structure, the objects they provide for errors, and how to interpret them.
10
-
It also explains the error internals and the server-driver compatibility for both the GQLSTATUS and legacy errors.
16
+
It also explains the error internals and the server-driver compatibility for both the GQLSTATUS and errors.
11
17
12
18
[role=label--version-5.25]
13
19
[[gqlstatus-error-object]]
@@ -57,7 +63,7 @@ This wrapped object is referred to as a `cause` and used to provide additional,
57
63
[[gqlstatus-neo4j-defined-codes]]
58
64
== Classes of GQLSTATUS error codes
59
65
60
-
The Neo4j GQLSTATUS codes are divided into classes and subclasses.
66
+
The GQLSTATUS codes are divided into classes and subclasses.
61
67
The class code is a 2-character string that indicates the general condition of the status, such as connection exception, data exception, etc.
62
68
The subclass code is a 3-character string that provides more detailed information about the condition.
63
69
The Neo4j-define subclasses start with N, followed by a 2-digit number, while the ones that do not start with N are standard-defined subclasses.
@@ -88,19 +94,19 @@ The following table lists the GQLSTATUS classes and their meanings:
88
94
| procedure exception
89
95
|===
90
96
91
-
[[legacy-error-object]]
92
-
== Legacy error object
97
+
[[-error-object]]
98
+
== Neo4j error object
93
99
94
-
The Neo4j legacy error object contains diagnostic information representing the *unsuccessful* outcome of a Cypher query or command execution, including severity, status code, category, description, message, and position in the query text where the error is relevant.
100
+
The Neo4j error object contains diagnostic information representing the *unsuccessful* outcome of a Cypher query or command execution, including severity, status code, category, description, message, and position in the query text where the error is relevant.
95
101
Depending on the application, some of the fields from the error object might not be visible.
96
102
97
103
The error object consists of the following fields:
98
104
99
-
.Neo4j legacy error object
105
+
.Neo4j error object
100
106
[cols="<1s,<4"]
101
107
|===
102
-
|Neo4j legacy code
103
-
a|The Neo4j status code in the form of `Neo.[Type].[SubType].[Name]`.
108
+
|Neo4j code
109
+
a|The Neo4j code in the form of `Neo.[Type].[SubType].[Name]`.
104
110
|Description
105
111
a|The description of the specific error.
106
112
|Message
@@ -114,38 +120,38 @@ Available categories are `CLIENT_ERROR`, `TRANSIENT_ERROR`, and `DATABASE_ERROR`
114
120
a|(Optional) The position, given by offset, line and column, where the error is relevant in the query text.
115
121
|===
116
122
117
-
For more information, see the xref:errors/all-errors.adoc[List of legacy server error codes].
123
+
For more information, see the xref:errors/all-errors.adoc[List of Neo4j error codes].
118
124
119
-
[[error-grouping-and-filtering]]
120
-
== Server error classification
125
+
[[error-types]]
126
+
== Types of server errors
121
127
122
128
The fact that an error is returned by the server does not always mean that it is a fatal error.
123
129
Status codes can also indicate transient problems that may go away if you retry the request.
124
-
The server error classification determines the effect on the transaction.
130
+
The server error group determines the effect on the transaction.
| These errors are detected by the server and are usually related to some kind of database unavailability, such as limits reached, out-of-memory, timeouts, etc.
142
148
The error can be temporary, therefore retrying later might yield a successful outcome.
143
-
Legacy transient errors have the prefix Neo.`TransientError`.
149
+
Neo4j codes have the prefix Neo.`TransientError`, while the GQLSTATUS codes have `ErrorClassification` of type `TRANSIENT_ERROR`.
| These errors are caused by the database and are usually related to the database state and mean that the database failed to service the request.
148
-
Legacy database errors have the prefix `Neo.DatabaseError`.
154
+
Neo4j codes have the prefix `Neo.DatabaseError`, while the GQLSTATUS codes have `ErrorClassification` of type `DATABASE_ERROR`.
149
155
| Rollback
150
156
151
157
|===
@@ -154,14 +160,14 @@ Legacy database errors have the prefix `Neo.DatabaseError`.
154
160
== Error internals
155
161
156
162
Neo4j supports server errors in the form of Java exceptions.
157
-
Most of these implement the `HasStatus` interface, which means they have a Neo4j status code in addition to the exception message.
163
+
Most of these implement the `HasStatus` interface, which means they have a status code in addition to the exception message.
158
164
159
-
On the server side, an exception contains normal Java constructors and methods like `getMessage()`, `getCause()`, etc., and additionally the `status()` method from the `HasStatus` API, which returns the Neo4j status code.
165
+
On the server side, an exception contains normal Java constructors and methods like `getMessage()`, `getCause()`, etc., and additionally the `status()` method from the `HasStatus` API, which returns the status code.
160
166
161
167
Starting from 5.25, the exceptions also get new compulsary fields for `gqlStatus`, `statusDescription`, `diagnosticRecord`, and an optional field for `cause`.
162
-
The cause field is a wrapped underlying Neo4j exception, which in turn has its own GQLSTATUS, statusdescription, diagnostic record and message. +
168
+
The cause field is a wrapped underlying Neo4j exception, which in turn has its own GQLSTATUS, statusdescription, diagnostic record, and message. +
163
169
The `getMessage()` method is kept as Java exceptions inherently have this method.
164
-
And a new classification field is added to cover the division of client errors, transient errors and database errors, which today is part of the Neo4j status code.
170
+
And a new classification field is added to cover the division of client errors, transient errors, and database errors, which today is part of the Neo4j code.
165
171
All of these fields construct the GQLSTATUS object, which is sent to the driver as part of the Failure Bolt message.
166
172
Exactly how this looks, depends on the combination of driver and server versions.
167
173
See <<server-driver-compatibility, Server-driver version compatibility>> for more information.
Copy file name to clipboardExpand all lines: modules/ROOT/pages/index.adoc
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
1
2
2
[[status-codes]]
3
3
ifdef::backend-pdf[]
4
-
= Neo4j 5 Status Codes
4
+
= Status Codes for Errors and Notifications
5
5
endif::[]
6
6
ifndef::backend-pdf[]
7
7
= Introduction
8
8
endif::[]
9
-
:description: The Neo4j status codes for Neo4j version {neo4j-version}.
9
+
:description: Status codes for errors and notifications Neo4j 5
10
10
:neo4j-buildnumber: {neo4j-version}
11
11
12
-
The Neo4j 5 Status Codes manual includes all status codes that a Neo4j server may return to indicate the outcome of a Cypher request.
12
+
This manual provides status codes for errors and notifications that a Neo4j server may return to indicate the result of a Cypher request.
13
13
14
14
Starting from 5.23 for notifications and 5.25 for errors, the Neo4j DBMS supports the GQL standard. +
15
15
GQL is the new link:https://www.iso.org/home.html[ISO] International Standard query language for graph databases.
@@ -19,8 +19,6 @@ For more information, see link:https:https://neo4j.com/docs/cypher-manual/curren
19
19
As part of this GQL compliance, Cypher now also includes status codes that a GQL-compliant DBMS returns to indicate the outcome of a request.
20
20
For more information on the GQL-status object framework for notifications and errors, see xref:notifications/index.adoc[] and xref:errors/index.adoc[].
21
21
22
-
This manual details all status codes that a Neo4j DBMS may return, including both GQL-compliant and legacy Neo4j status codes.
0 commit comments