Skip to content

Commit 2b83650

Browse files
renetapopovaLojjsbigmontzhvub
authored
GQL framework (#212)
Co-authored-by: Louise Berglund <[email protected]> Co-authored-by: Antonio Barcélos <[email protected]> Co-authored-by: Hannes Voigt <[email protected]>
1 parent e97a31a commit 2b83650

File tree

10 files changed

+1042
-950
lines changed

10 files changed

+1042
-950
lines changed

README.adoc

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

33
= docs-status-codes
44

5-
This repository contains the AsciiDoc and other sources to build the link:{docs-uri}/status-codes[Neo4j Status Codes].
5+
This repository contains the AsciiDoc and other sources to build the link:{docs-uri}/status-codes[Status Codes for Errors & Notifications].
66

77
[[local-build]]
88
== Installation

antora.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: status-codes
2-
title: Status Codes
2+
title: Status Codes for Errors & Notifications
33
version: '5'
44
start_page: ROOT:index.adoc
55
nav:

modules/ROOT/content-nav.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
* xref:index.adoc[]
22
* xref:errors/index.adoc[]
3-
** xref:errors/all-errors.adoc[]
43
** xref:errors/gql-errors.adoc[]
4+
** xref:errors/all-errors.adoc[]
55
* xref:notifications/index.adoc[]
66
** xref:notifications/all-notifications.adoc[]
77
* xref:changelogs.adoc[]

modules/ROOT/pages/changelogs.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
:description: This page lists all changes to status codes per Neo4j version.
22
= Changes to status codes per Neo4j version
33

4+
== Neo4j 5.25
5+
6+
Starting from 5.25, the query log includes the GQL error information under the JSON object `errorInfo`.
7+
For more information, see link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations Manual -> GQL error information].
8+
49
== Neo4j 5.24
510

611
**New:**

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

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,27 @@
1-
:description: The Neo4j error codes for Neo4j version {neo4j-version}.
1+
:description: The error codes for Neo4j 5.
22

33

44
[[neo4j-errors]]
5-
= List of all server error codes
5+
= List of Neo4j error codes
6+
7+
This page lists the current Neo4j error codes, which which are returned along side xref:errors/gql-errors.adoc[GQLSTATUS error codes].
8+
9+
Error codes are returned by the server when the execution of a query fails.
10+
They always have the severity level `ERROR`.
11+
Errors are grouped based on the type of the Neo4j code:
12+
13+
Client errors::
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`.
16+
17+
Transient errors::
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.
19+
The error can be temporary, and the request could succeed if retried.
20+
The Neo4j codes for transient errors have the prefix `Neo.TransientError`.
21+
22+
Database errors::
23+
These errors are caused by the database and are usually related to the database state.
24+
The Neo4j codes for database errors have the prefix `Neo.DatabaseError`.
625

726
This page contains lists of all Neo4j errors, grouped by type.
827

@@ -13,7 +32,7 @@ This is a complete list of all client errors Neo4j may return, and what they mea
1332
[options="header", cols="<1m,<1"]
1433
|===
1534

16-
| Neo4j status code
35+
| Neo4j code
1736
| Description
1837

1938
| Neo.ClientError.ChangeDataCapture.InvalidIdentifier
@@ -279,7 +298,7 @@ This is a complete list of all transient errors Neo4j may return, and what they
279298
[options="header", cols="<1m,<1"]
280299
|===
281300

282-
| Neo4j status code
301+
| Neo4j code
283302
| Description
284303

285304
| Neo.TransientError.ChangeDataCapture.FutureIdentifier
@@ -386,7 +405,7 @@ This is a complete list of all database errors Neo4j may return, and what they m
386405
[options="header", cols="<1m,<1"]
387406
|===
388407

389-
| Neo4j status code
408+
| Neo4j code
390409
| Description
391410

392411
| Neo.DatabaseError.ChangeDataCapture.Disabled

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
:description: This section describes the GQLSTATUS errors that Neo4j can return, grouped by category, and an example of when they can occur.
22

33
[[neo4j-gqlstatus-errors]]
4-
= List of all GQLSTATUS server error codes
4+
= List of GQLSTATUS error codes
55

66
//The following page provides an overview of all server errors in Neo4j, along with some scenarios and their possible solutions.
77
The following page provides an overview of all GQLSTATUS server error codes in Neo4j.
88
All errors in Neo4j have severity level `ERROR`.
99

1010
== Connection exceptions
1111

12-
Connection exceptions occur when the client is unable to connect to the server for various reasons such as network issues, server-side routing being disabled, or the database being unavailable, etc.
12+
Connection exceptions occur when the client (e.g. Browser/Bloom/Cypher Shell) is unable to connect to the server for various reasons such as network issues, server-side routing being disabled, or the database being unavailable, etc.
1313

1414
=== 08000
1515

modules/ROOT/pages/errors/index.adoc

Lines changed: 207 additions & 87 deletions
Large diffs are not rendered by default.

modules/ROOT/pages/index.adoc

Lines changed: 9 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,23 @@
11

22
[[status-codes]]
33
ifdef::backend-pdf[]
4-
= Neo4j 5 Status Codes
4+
= Status Codes for Errors and Notifications
55
endif::[]
66
ifndef::backend-pdf[]
77
= Introduction
88
endif::[]
9-
:description: The Neo4j status codes for Neo4j version {neo4j-version}.
9+
:description: Status codes for errors and notifications Neo4j 5
1010
:neo4j-buildnumber: {neo4j-version}
1111

12+
This manual covers all status codes for errors and notifications that a Neo4j server may return to indicate the result of a Cypher request.
1213

13-
This document details all status codes that a Neo4j DBMS may return to indicate the outcome of a request.
14+
Starting from 5.23 for notifications and 5.25 for errors, Neo4j supports the GQL standard. +
15+
GQL is the new link:https://www.iso.org/home.html[ISO] International Standard query language for graph databases.
16+
Cypher®, Neo4j’s query language, supports most mandatory and a substantial portion of the optional GQL features (as defined by the link:https://www.iso.org/standard/76120.html[ISO/IEC 39075:2024(en) - Information technology - Database languages - GQL Standard]).
17+
For more information, see link:https://neo4j.com/docs/cypher-manual/current/appendix/gql-conformance/[Cypher Manual -> GQL conformance].
1418

15-
//== GQL status codes
16-
17-
18-
== Neo4j status codes
19-
20-
=== Format
21-
22-
Each Neo4j status code follows the same format:
23-
24-
[source, status code format, role="noheader"]
25-
-----
26-
Neo.[Type].[SubType].[Name]
27-
-----
28-
29-
30-
=== Types of Neo4j status codes
31-
32-
The fact that a Neo4j status code is returned by the server does not always mean there is a fatal error.
33-
Neo4j status codes can also indicate transient problems that may go away if you retry the request.
34-
The type of the status code determines the effect on the transaction.
35-
36-
.Neo4j status code types
37-
[options="header", cols="<1m,<2,<1"]
38-
|===
39-
40-
| Type
41-
| Description
42-
| Effect on the transaction
43-
44-
| xref:errors/all-errors.adoc#_client_errors[ClientError]
45-
| The client sent a bad request - changing the request might yield a successful outcome.
46-
| Rollback
47-
48-
| xref:errors/all-errors#_transient_errors[TransientError]
49-
| The database cannot service the request right now, retrying later might yield a successful outcome.
50-
| Rollback
51-
52-
| xref:errors/all-errors#_database_error[DatabaseError]
53-
| The database failed to service the request.
54-
| Rollback
55-
56-
| xref:notifications/index.adoc[ClientNotifications]
57-
| The query execution was successful, but there are notifications about the request sent by the client.
58-
| None
59-
60-
|===
61-
62-
[NOTE]
63-
====
64-
From version 5.23, Neo4j has a new GqlStatusObject API in addition to the existing Notification API.
65-
66-
The GqlStatusObject API provides information about the status of a Cypher query or command execution in compliance with the GQL standard.
67-
It includes GQLSTATUS code, StatusDescription, and DiagnosticRecord.
68-
For more information, see xref:notifications/index.adoc#gqlstatus-notification-object[GQL-status notification object].
69-
====
19+
As part of this GQL compliance, Cypher also includes status codes that a GQL-compliant DBMS returns to indicate the outcome of a request.
20+
For more information on the GQL-status object framework for notifications and errors, see xref:notifications/index.adoc[] and xref:errors/index.adoc[].
7021

7122
ifndef::backend-pdf[]
7223
License: link:{common-license-page-uri}[Creative Commons 4.0]

0 commit comments

Comments
 (0)