|
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.01 |
5 | | -**New:** |
6 | | -[options="header", cols="<1m,<1"] |
7 | | -|=== |
8 | | -| GQLSTATUS |
9 | | -| Neo4j code |
| 3 | += Changes and deprecations |
10 | 4 |
|
11 | | -| 01N80 |
12 | | -| Neo.ClientNotification.Cluster.ServerFailed |
| 5 | +== 2025.05 |
13 | 6 |
|
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. |
16 | 9 |
|
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]. |
19 | 11 |
|
20 | | -| 03N85 |
21 | | -| Neo.ClientNotification.Cluster.ServerCaughtUp |
| 12 | +== 2025.04 |
22 | 13 |
|
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`. |
24 | 17 |
|
| 18 | +== 2025.01 |
25 | 19 |
|
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. |
28 | 22 |
|
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]. |
30 | 25 |
|
31 | | -**New:** |
32 | 26 |
|
33 | | -[options="header", cols="<1m,<1"] |
34 | | -|=== |
| 27 | +ifndef::backend-pdf[] |
| 28 | +[discrete.glossary] |
| 29 | +== Glossary |
35 | 30 |
|
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::[] |
0 commit comments