Skip to content

Commit 7fa00ff

Browse files
Update the changelog page (#415) (#425)
Co-authored-by: Natalia Ivakina <[email protected]>
1 parent 95a8491 commit 7fa00ff

File tree

3 files changed

+22
-345
lines changed

3 files changed

+22
-345
lines changed

modules/ROOT/pages/changelogs.adoc

Lines changed: 20 additions & 343 deletions
Original file line numberDiff line numberDiff line change
@@ -1,355 +1,32 @@
1-
:description: This page lists all changes to status codes per Neo4j version.
2-
= Changes to status codes per Neo4j version
1+
:description: This page lists changes to the error framework and deprecations.
32

4-
== Neo4j 2025.01
5-
**New:**
6-
[options="header", cols="<1m,<1"]
7-
|===
8-
| GQLSTATUS
9-
| Neo4j code
3+
= Changes and deprecations
104

11-
| 01N80
12-
| Neo.ClientNotification.Cluster.ServerFailed
5+
== 2025.05
136

14-
| 01N81
15-
| Neo.ClientNotification.Cluster.ServerCatchingUp
7+
Starting from 2025.05, the `failureReason` in the JSON template of the query log, is deprecated and switched off by default.
8+
Use the `errorInfo` entry instead.
169

17-
| 01N82
18-
| Neo.ClientNotification.Cluster.ServerNotAvailable
10+
For more information about `errorInfo`, refer to link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations manual -> Logging -> GQL error information].
1911

20-
| 03N85
21-
| Neo.ClientNotification.Cluster.ServerCaughtUp
12+
== 2025.04
2213

23-
|===
14+
Using the error messages programmatically is deprecated and might change in a future release.
15+
Therefore, parsing the error messages or the status descriptions and incorporating them into scripts is not recommended.
16+
If you need to handle errors programmatically, please use the GQLSTATUS error codes, for example, `22NC5`.
2417

18+
== 2025.01
2519

26-
//Starting from 2025.01, when using Cypher 25, queries using `WAIT` return the notifications listed above instead of result rows.
27-
//The behaviour for Cypher 5 remains unchanged.
20+
// * The diagnostic record also contains a `_status_parameters` field, which represents a map that contains all variable parts of the status description, such as labels, database names, Cypher clauses, etc.
21+
// This field is used to provide more detailed information about the error.
2822

29-
== Neo4j 5.26
23+
A new JSON template is available for the query log, which is the default set in _server_logs.xml_. +
24+
For more details, see the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#_json_format_log_entries[Operations manual -> Monitoring -> Logging].
3025

31-
**New:**
3226

33-
[options="header", cols="<1m,<1"]
34-
|===
27+
ifndef::backend-pdf[]
28+
[discrete.glossary]
29+
== Glossary
3530

36-
| GQLSTATUS
37-
| Neo4j code
38-
39-
| 01N72
40-
| Neo.ClientNotification.Statement.InsecureProtocol
41-
42-
| 42I50
43-
| Neo.ClientError.Schema.TokenLengthError
44-
45-
|===
46-
47-
Starting from 5.26, Neo4j errors sent over drivers include new fields,
48-
such as GQLSTATUS code, StatusDescription, and DiagnosticRecord.
49-
For more information, see xref:errors/index.adoc#gqlstatus-error-object[GQL-status error object].
50-
51-
52-
== Neo4j 5.25
53-
54-
Starting from 5.25, the query log includes the GQL error information under the JSON object `errorInfo`.
55-
For more information, see link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations Manual -> GQL error information].
56-
57-
== Neo4j 5.24
58-
59-
**New:**
60-
61-
[options="header", cols="<1m,<1"]
62-
|===
63-
64-
| GQLSTATUS
65-
| Neo4j code
66-
67-
| 00N72
68-
| Neo.ClientNotification.Security.AuthProviderNotDefined
69-
70-
| 01G11
71-
| Neo.ClientNotification.Statement.AggregationSkippedNull
72-
73-
| 01N71
74-
| Neo.ClientNotification.Security.ExternalAuthNotEnabled
75-
76-
| 03N61
77-
| Neo.ClientNotification.Statement.RedundantOptionalProcedure
78-
79-
| 03N62
80-
| Neo.ClientNotification.Statement.RedundantOptionalSubquery
81-
82-
| N/A
83-
| Neo.TransientError.Invalid.ResourceExhaustion
84-
85-
|===
86-
87-
== Neo4j 5.23
88-
89-
From version 5.23, Neo4j has a new GqlStatusObject API in addition to the existing Notification API.
90-
91-
The GqlStatusObject API provides information about the status of a Cypher query or command execution in compliance with the GQL standard.
92-
It includes GQLSTATUS code, StatusDescription, and DiagnosticRecord.
93-
For more information, see xref:notifications/index.adoc#gqlstatus-notification-object[GQL-status notification object].
94-
95-
== Neo4j 5.17
96-
97-
**New:**
98-
99-
[source, status codes, role="noheader"]
100-
-----
101-
Neo.ClientNotification.Cluster.RequestedTopologyMatchedCurrentTopology
102-
Neo.ClientNotification.Schema.IndexOrConstraintAlreadyExists
103-
Neo.ClientNotification.Schema.IndexOrConstraintDoesNotExist
104-
Neo.ClientError.Statement.InvalidTargetDatabaseError
105-
-----
106-
107-
== Neo4j 5.15
108-
109-
**New:**
110-
111-
[source, status codes, role="noheader"]
112-
-----
113-
Neo.ClientNotification.Cluster.CordonedServersExistedDuringAllocation
114-
-----
115-
116-
== Neo4j 5.14
117-
118-
**New:**
119-
120-
[source, status codes, role="noheader"]
121-
-----
122-
Neo.ClientNotification.Cluster.NoDatabasesReallocated
123-
Neo.ClientNotification.Statement.SideEffectVisibility
124-
-----
125-
126-
**Changed**
127-
128-
The usage of `Neo.ClientNotification.Statement.RuntimeExperimental` has been removed.
129-
130-
== Neo4j 5.13
131-
132-
**New:**
133-
134-
[source, status codes, role="noheader"]
135-
-----
136-
Neo.ClientNotification.Cluster.ServerAlreadyEnabled
137-
Neo.ClientNotification.Cluster.ServerAlreadyCordoned
138-
Neo.ClientError.ChangeDataCapture.InvalidIdentifier
139-
Neo.TransientError.ChangeDataCapture.FutureIdentifier
140-
Neo.DatabaseError.ChangeDataCapture.Disabled
141-
Neo.DatabaseError.ChangeDataCapture.ScanFailure
142-
-----
143-
144-
== Neo4j 5.10
145-
146-
**New:**
147-
148-
[source, status codes, role="noheader"]
149-
-----
150-
Neo.TransientError.Transaction.QueryExecutionFailedOnTransaction
151-
-----
152-
153-
== Neo4j 5.9
154-
155-
**New:**
156-
157-
[source, status codes, role="noheader"]
158-
-----
159-
Neo.ClientNotification.Security.CommandHasNoEffect
160-
Neo.ClientNotification.Security.ImpossibleRevokeCommand
161-
-----
162-
163-
== Neo4j 5.7
164-
165-
**New:**
166-
167-
[source, status codes, role="noheader"]
168-
-----
169-
Neo.ClientError.Transacton.TransactionTimedOutClientConfiguration
170-
Neo.ClientError.Routing.DbmsInPanic
171-
Neo.ClientError.Routing.RoutingFailed
172-
-----
173-
174-
== Neo4j 5.5
175-
176-
**New:**
177-
178-
[source, status codes, role="noheader"]
179-
-----
180-
Neo.ClientNotification.Statement.RepeatedRelationshipReference
181-
Neo.ClientError.Statement.RemoteExecutionClientError
182-
Neo.TransientError.Statement.RemoteExecutionTransientError
183-
-----
184-
185-
== Neo4j 5.4
186-
187-
**New:**
188-
189-
[source, status codes, role="noheader"]
190-
-----
191-
Neo.ClientNotification.Statement.UnsatisfiableRelationshipTypeExpression
192-
-----
193-
194-
== Neo4j 5.3
195-
196-
**New:**
197-
198-
[source, status codes, role="noheader"]
199-
-----
200-
Neo.DatabaseError.Transaction.TransactionTerminationFailed
201-
-----
202-
203-
204-
== Neo4j 5.0
205-
206-
**New:**
207-
208-
[source, status codes, role="noheader"]
209-
-----
210-
Neo.ClientNotification.Database.HomeDatabaseNotFound
211-
Neo.ClientNotification.Request.DeprecatedFormat
212-
Neo.ClientNotification.Schema.HintedIndexNotFound
213-
Neo.ClientNotification.Statement.CartesianProduct
214-
Neo.ClientNotification.Statement.CodeGenerationFailed
215-
Neo.ClientNotification.Statement.DynamicProperty
216-
Neo.ClientNotification.Statement.EagerOperator
217-
Neo.ClientNotification.Statement.ExhaustiveShortestPath
218-
Neo.ClientNotification.Statement.NoApplicableIndex
219-
Neo.ClientNotification.Statement.RuntimeExperimental
220-
Neo.ClientNotification.Statement.SubqueryVariableShadowing
221-
Neo.ClientNotification.Statement.UnboundedVariableLengthPattern
222-
Neo.ClientNotification.Statement.ParameterNotProvided
223-
Neo.ClientError.Statement.UnsupportedOperationError
224-
225-
-----
226-
227-
**Removed:**
228-
229-
[source, status codes, role="noheader"]
230-
-----
231-
Neo.ClientError.Statement.CodeGenerationFailed
232-
Neo.TransientError.Transaction.TransientTransactionFailure
233-
Neo.ClientNotification.Statement.CartesianProductWarning
234-
Neo.ClientNotification.Statement.DynamicPropertyWarning
235-
Neo.ClientNotification.Statement.EagerOperatorWarning
236-
Neo.ClientNotification.Statement.ExhaustiveShortestPathWarning
237-
Neo.ClientNotification.Statement.ExperimentalFeature
238-
Neo.ClientNotification.Statement.MissingAlias
239-
Neo.ClientNotification.Statement.NoApplicableIndexWarning
240-
Neo.ClientNotification.Statement.SubqueryVariableShadowingWarning
241-
Neo.ClientNotification.Statement.UnboundedVariableLengthPatternWarning
242-
243-
-----
244-
245-
== Neo4j 4.4
246-
247-
**New:**
248-
249-
[source, status codes, role="noheader"]
250-
-----
251-
Neo.ClientError.Statement.UnsupportedAdministrationCommand
252-
Neo.DatabaseError.Transaction.LinkedTransactionError
253-
Neo.TransientError.Transaction.LeaderSwitch
254-
Neo.ClientError.Database.IllegalAliasChain
255-
-----
256-
257-
258-
== Neo4j 4.3
259-
260-
**New:**
261-
262-
[source, status codes, role="noheader"]
263-
-----
264-
Neo.ClientError.General.UpgradeRequired
265-
Neo.TransientError.Statement.ExecutionTimeout
266-
-----
267-
268-
269-
== Neo4j 4.2
270-
271-
**New:**
272-
273-
[source, status codes, role="noheader"]
274-
-----
275-
Neo.ClientNotification.Statement.MissingAlias
276-
Neo.ClientNotification.Statement.SubqueryVariableShadowingWarning
277-
Neo.TransientError.Transaction.TransientTransactionFailure
278-
-----
279-
280-
== Neo4j 4.1
281-
282-
**New:**
283-
284-
[source, status codes, role="noheader"]
285-
-----
286-
Neo.ClientError.Cluster.Routing
287-
Neo.ClientError.General.TransactionOutOfMemoryError
288-
Neo.ClientError.Statement.AccessMode
289-
Neo.DatabaseError.Statement.RemoteExecutionFailed
290-
Neo.TransientError.General.MemoryPoolOutOfMemoryError
291-
-----
292-
293-
**Removed:**
294-
295-
[source, status codes, role="noheader"]
296-
-----
297-
Neo.ClientError.Cluster.TransactionSizeExceedsLimit
298-
Neo.DatabaseError.Cluster.SerializationFailure
299-
Neo.TransientError.General.TransactionOutOfMemoryError
300-
-----
301-
302-
== Neo4j 4.0
303-
304-
**New:**
305-
306-
[source, status codes, role="noheader"]
307-
-----
308-
Neo.ClientError.Cluster.TransactionSizeExceedsLimit
309-
Neo.ClientError.Database.DatabaseNotFound
310-
Neo.ClientError.Database.ExistingDatabaseFound
311-
Neo.ClientError.Fabric.AccessMode
312-
Neo.ClientError.Schema.ConstraintViolation
313-
Neo.ClientError.Schema.ConstraintWithNameAlreadyExists
314-
Neo.ClientError.Schema.EquivalentSchemaRuleAlreadyExists
315-
Neo.ClientError.Schema.IndexMultipleFound
316-
Neo.ClientError.Schema.IndexWithNameAlreadyExists
317-
Neo.ClientError.Statement.NotSystemDatabaseError
318-
Neo.ClientError.Statement.RuntimeUnsupportedError
319-
Neo.ClientError.Transaction.InvalidBookmarkMixture
320-
Neo.DatabaseError.Cluster.SerializationFailure
321-
Neo.DatabaseError.Database.DatabaseLimitReached
322-
Neo.DatabaseError.Database.UnableToStartDatabase
323-
Neo.DatabaseError.Database.Unknown
324-
Neo.DatabaseError.Fabric.RemoteExecutionFailed
325-
Neo.DatabaseError.Schema.TokenLimitReached
326-
Neo.DatabaseError.Statement.CodeGenerationFailed
327-
Neo.TransientError.Database.DatabaseUnavailable
328-
Neo.TransientError.General.TransactionMemoryLimit
329-
Neo.TransientError.General.TransactionOutOfMemoryError
330-
Neo.TransientError.Transaction.BookmarkTimeout
331-
Neo.TransientError.Transaction.LeaseExpired
332-
Neo.TransientError.Transaction.MaximumTransactionLimitReached
333-
-----
334-
335-
**Removed:**
336-
337-
[source, status codes, role="noheader"]
338-
-----
339-
Neo.ClientError.LegacyIndex.LegacyIndexNotFound
340-
Neo.ClientError.Request.TransactionRequired
341-
Neo.ClientError.Schema.ConstraintVerificationFailed
342-
Neo.ClientError.Security.EncryptionRequired
343-
Neo.ClientError.Statement.LabelNotFound
344-
Neo.ClientNotification.Statement.CreateUniqueUnavailableWarning
345-
Neo.ClientNotification.Statement.JoinHintUnsupportedWarning
346-
Neo.ClientNotification.Statement.PlannerUnavailableWarning
347-
Neo.ClientNotification.Statement.PlannerUnsupportedWarning
348-
Neo.DatabaseError.Schema.LabelLimitReached
349-
Neo.TransientError.Cluster.NoLeaderAvailable
350-
Neo.TransientError.General.DatabaseUnavailable
351-
Neo.TransientError.Network.CommunicationError
352-
Neo.TransientError.Schema.SchemaModifiedConcurrently
353-
Neo.TransientError.Transaction.InstanceStateChanged
354-
Neo.TransientError.Transaction.LockSessionExpired
355-
-----
31+
include::partial$glossary.adoc[]
32+
endif::[]

modules/ROOT/pages/errors/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ On the driver side, the Neo4jException is extended with the corresponding method
185185
The driver receives the Failure Bolt message and extracts the status code and the error message.
186186
Then, it constructs an exception with the status code, error message, and other relevant information, and sends it to the client.
187187

188-
// Starting from 2025.01, the diagnostic record also contains a `_status_parameters` field, which represens a map that contains all variable parts of the status description, such as labels, database names, Cypher clauses, etc.
188+
// Starting from 2025.01, the diagnostic record also contains a `_status_parameters` field, which represents a map that contains all variable parts of the status description, such as labels, database names, Cypher clauses, etc.
189189
// This field is used to provide more detailed information about the error.
190190

191191
== Query logging

modules/ROOT/pages/notifications/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Additional helper methods are exposed for some useful fields.
6060

6161
!`_classification` ! The Neo4j category of the notification.
6262
! `_position` ! The position, given by row and column, where the notification is relevant in the query text.
63-
! `_status_parameters`! A map that contains all variable parts of the status description.
63+
// ! `_status_parameters`! A map that contains all variable parts of the status description.
6464
!===
6565
|===
6666

0 commit comments

Comments
 (0)