Skip to content

Commit d40e248

Browse files
Update the changelog page (#415)
Co-authored-by: Natalia Ivakina <[email protected]>
1 parent 1298a9f commit d40e248

File tree

3 files changed

+22
-357
lines changed

3 files changed

+22
-357
lines changed

modules/ROOT/pages/changelogs.adoc

Lines changed: 20 additions & 355 deletions
Original file line numberDiff line numberDiff line change
@@ -1,367 +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.11
5-
**New:**
6-
[options="header", cols="<1m,<1"]
7-
|===
8-
| GQLSTATUS
9-
| Neo4j code
3+
= Changes and deprecations
104

11-
| 01N83
12-
| Neo.ClientNotification.Request.UnsupportedType
5+
== 2025.05
136

14-
|===
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.
159

16-
== Neo4j 2025.01
17-
**New:**
18-
[options="header", cols="<1m,<1"]
19-
|===
20-
| GQLSTATUS
21-
| Neo4j code
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].
2211

23-
| 01N80
24-
| Neo.ClientNotification.Cluster.ServerFailed
12+
== 2025.04
2513

26-
| 01N81
27-
| Neo.ClientNotification.Cluster.ServerCatchingUp
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`.
2817

29-
| 01N82
30-
| Neo.ClientNotification.Cluster.ServerNotAvailable
18+
== 2025.01
3119

32-
| 03N85
33-
| Neo.ClientNotification.Cluster.ServerCaughtUp
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.
3422

35-
|===
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].
3625

3726

38-
//Starting from 2025.01, when using Cypher 25, queries using `WAIT` return the notifications listed above instead of result rows.
39-
//The behaviour for Cypher 5 remains unchanged.
27+
ifndef::backend-pdf[]
28+
[discrete.glossary]
29+
== Glossary
4030

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

0 commit comments

Comments
 (0)