|
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. |
3 | 2 |
|
4 | | -== Neo4j 2025.11 |
5 | | -**New:** |
6 | | -[options="header", cols="<1m,<1"] |
7 | | -|=== |
8 | | -| GQLSTATUS |
9 | | -| Neo4j code |
| 3 | += Changes and deprecations |
10 | 4 |
|
11 | | -| 01N83 |
12 | | -| Neo.ClientNotification.Request.UnsupportedType |
| 5 | +== 2025.05 |
13 | 6 |
|
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. |
15 | 9 |
|
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]. |
22 | 11 |
|
23 | | -| 01N80 |
24 | | -| Neo.ClientNotification.Cluster.ServerFailed |
| 12 | +== 2025.04 |
25 | 13 |
|
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`. |
28 | 17 |
|
29 | | -| 01N82 |
30 | | -| Neo.ClientNotification.Cluster.ServerNotAvailable |
| 18 | +== 2025.01 |
31 | 19 |
|
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. |
34 | 22 |
|
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]. |
36 | 25 |
|
37 | 26 |
|
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 |
40 | 30 |
|
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::[] |
0 commit comments