From af02253e79cc106f727d0108e2c869920350fd0e Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Tue, 18 Nov 2025 13:29:10 +0000 Subject: [PATCH 1/9] update the changelog page --- modules/ROOT/pages/changelogs.adoc | 429 +++++------------------------ 1 file changed, 62 insertions(+), 367 deletions(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index dbdd0237..342356a7 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -1,367 +1,62 @@ -:description: This page lists all changes to status codes per Neo4j version. -= Changes to status codes per Neo4j version - -== Neo4j 2025.11 -**New:** -[options="header", cols="<1m,<1"] -|=== -| GQLSTATUS -| Neo4j code - -| 01N83 -| Neo.ClientNotification.Request.UnsupportedType - -|=== - -== Neo4j 2025.01 -**New:** -[options="header", cols="<1m,<1"] -|=== -| GQLSTATUS -| Neo4j code - -| 01N80 -| Neo.ClientNotification.Cluster.ServerFailed - -| 01N81 -| Neo.ClientNotification.Cluster.ServerCatchingUp - -| 01N82 -| Neo.ClientNotification.Cluster.ServerNotAvailable - -| 03N85 -| Neo.ClientNotification.Cluster.ServerCaughtUp - -|=== - - -//Starting from 2025.01, when using Cypher 25, queries using `WAIT` return the notifications listed above instead of result rows. -//The behaviour for Cypher 5 remains unchanged. - -== Neo4j 5.26 - -**New:** - -[options="header", cols="<1m,<1"] -|=== - -| GQLSTATUS -| Neo4j code - -| 01N72 -| Neo.ClientNotification.Statement.InsecureProtocol - -| 42I50 -| Neo.ClientError.Schema.TokenLengthError - -|=== - -Starting from 5.26, Neo4j errors sent over drivers include new fields, -such as GQLSTATUS code, StatusDescription, and DiagnosticRecord. -For more information, see xref:errors/index.adoc#gqlstatus-error-object[GQL-status error object]. - - -== Neo4j 5.25 - -Starting from 5.25, the query log includes the GQL error information under the JSON object `errorInfo`. -For more information, see link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations Manual -> GQL error information]. - -== Neo4j 5.24 - -**New:** - -[options="header", cols="<1m,<1"] -|=== - -| GQLSTATUS -| Neo4j code - -| 00N72 -| Neo.ClientNotification.Security.AuthProviderNotDefined - -| 01G11 -| Neo.ClientNotification.Statement.AggregationSkippedNull - -| 01N71 -| Neo.ClientNotification.Security.ExternalAuthNotEnabled - -| 03N61 -| Neo.ClientNotification.Statement.RedundantOptionalProcedure - -| 03N62 -| Neo.ClientNotification.Statement.RedundantOptionalSubquery - -| N/A -| Neo.TransientError.Invalid.ResourceExhaustion - -|=== - -== Neo4j 5.23 - -From version 5.23, Neo4j has a new GqlStatusObject API in addition to the existing Notification API. - -The GqlStatusObject API provides information about the status of a Cypher query or command execution in compliance with the GQL standard. -It includes GQLSTATUS code, StatusDescription, and DiagnosticRecord. -For more information, see xref:notifications/index.adoc#gqlstatus-notification-object[GQL-status notification object]. - -== Neo4j 5.17 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Cluster.RequestedTopologyMatchedCurrentTopology -Neo.ClientNotification.Schema.IndexOrConstraintAlreadyExists -Neo.ClientNotification.Schema.IndexOrConstraintDoesNotExist -Neo.ClientError.Statement.InvalidTargetDatabaseError ------ - -== Neo4j 5.15 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Cluster.CordonedServersExistedDuringAllocation ------ - -== Neo4j 5.14 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Cluster.NoDatabasesReallocated -Neo.ClientNotification.Statement.SideEffectVisibility ------ - -**Changed** - -The usage of `Neo.ClientNotification.Statement.RuntimeExperimental` has been removed. - -== Neo4j 5.13 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Cluster.ServerAlreadyEnabled -Neo.ClientNotification.Cluster.ServerAlreadyCordoned -Neo.ClientError.ChangeDataCapture.InvalidIdentifier -Neo.TransientError.ChangeDataCapture.FutureIdentifier -Neo.DatabaseError.ChangeDataCapture.Disabled -Neo.DatabaseError.ChangeDataCapture.ScanFailure ------ - -== Neo4j 5.10 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.TransientError.Transaction.QueryExecutionFailedOnTransaction ------ - -== Neo4j 5.9 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Security.CommandHasNoEffect -Neo.ClientNotification.Security.ImpossibleRevokeCommand ------ - -== Neo4j 5.7 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.Transacton.TransactionTimedOutClientConfiguration -Neo.ClientError.Routing.DbmsInPanic -Neo.ClientError.Routing.RoutingFailed ------ - -== Neo4j 5.5 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Statement.RepeatedRelationshipReference -Neo.ClientError.Statement.RemoteExecutionClientError -Neo.TransientError.Statement.RemoteExecutionTransientError ------ - -== Neo4j 5.4 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Statement.UnsatisfiableRelationshipTypeExpression ------ - -== Neo4j 5.3 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.DatabaseError.Transaction.TransactionTerminationFailed ------ - - -== Neo4j 5.0 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Database.HomeDatabaseNotFound -Neo.ClientNotification.Request.DeprecatedFormat -Neo.ClientNotification.Schema.HintedIndexNotFound -Neo.ClientNotification.Statement.CartesianProduct -Neo.ClientNotification.Statement.CodeGenerationFailed -Neo.ClientNotification.Statement.DynamicProperty -Neo.ClientNotification.Statement.EagerOperator -Neo.ClientNotification.Statement.ExhaustiveShortestPath -Neo.ClientNotification.Statement.NoApplicableIndex -Neo.ClientNotification.Statement.RuntimeExperimental -Neo.ClientNotification.Statement.SubqueryVariableShadowing -Neo.ClientNotification.Statement.UnboundedVariableLengthPattern -Neo.ClientNotification.Statement.ParameterNotProvided -Neo.ClientError.Statement.UnsupportedOperationError - ------ - -**Removed:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.Statement.CodeGenerationFailed -Neo.TransientError.Transaction.TransientTransactionFailure -Neo.ClientNotification.Statement.CartesianProductWarning -Neo.ClientNotification.Statement.DynamicPropertyWarning -Neo.ClientNotification.Statement.EagerOperatorWarning -Neo.ClientNotification.Statement.ExhaustiveShortestPathWarning -Neo.ClientNotification.Statement.ExperimentalFeature -Neo.ClientNotification.Statement.MissingAlias -Neo.ClientNotification.Statement.NoApplicableIndexWarning -Neo.ClientNotification.Statement.SubqueryVariableShadowingWarning -Neo.ClientNotification.Statement.UnboundedVariableLengthPatternWarning - ------ - -== Neo4j 4.4 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.Statement.UnsupportedAdministrationCommand -Neo.DatabaseError.Transaction.LinkedTransactionError -Neo.TransientError.Transaction.LeaderSwitch -Neo.ClientError.Database.IllegalAliasChain ------ - - -== Neo4j 4.3 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.General.UpgradeRequired -Neo.TransientError.Statement.ExecutionTimeout ------ - - -== Neo4j 4.2 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientNotification.Statement.MissingAlias -Neo.ClientNotification.Statement.SubqueryVariableShadowingWarning -Neo.TransientError.Transaction.TransientTransactionFailure ------ - -== Neo4j 4.1 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.Cluster.Routing -Neo.ClientError.General.TransactionOutOfMemoryError -Neo.ClientError.Statement.AccessMode -Neo.DatabaseError.Statement.RemoteExecutionFailed -Neo.TransientError.General.MemoryPoolOutOfMemoryError ------ - -**Removed:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.Cluster.TransactionSizeExceedsLimit -Neo.DatabaseError.Cluster.SerializationFailure -Neo.TransientError.General.TransactionOutOfMemoryError ------ - -== Neo4j 4.0 - -**New:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.Cluster.TransactionSizeExceedsLimit -Neo.ClientError.Database.DatabaseNotFound -Neo.ClientError.Database.ExistingDatabaseFound -Neo.ClientError.Fabric.AccessMode -Neo.ClientError.Schema.ConstraintViolation -Neo.ClientError.Schema.ConstraintWithNameAlreadyExists -Neo.ClientError.Schema.EquivalentSchemaRuleAlreadyExists -Neo.ClientError.Schema.IndexMultipleFound -Neo.ClientError.Schema.IndexWithNameAlreadyExists -Neo.ClientError.Statement.NotSystemDatabaseError -Neo.ClientError.Statement.RuntimeUnsupportedError -Neo.ClientError.Transaction.InvalidBookmarkMixture -Neo.DatabaseError.Cluster.SerializationFailure -Neo.DatabaseError.Database.DatabaseLimitReached -Neo.DatabaseError.Database.UnableToStartDatabase -Neo.DatabaseError.Database.Unknown -Neo.DatabaseError.Fabric.RemoteExecutionFailed -Neo.DatabaseError.Schema.TokenLimitReached -Neo.DatabaseError.Statement.CodeGenerationFailed -Neo.TransientError.Database.DatabaseUnavailable -Neo.TransientError.General.TransactionMemoryLimit -Neo.TransientError.General.TransactionOutOfMemoryError -Neo.TransientError.Transaction.BookmarkTimeout -Neo.TransientError.Transaction.LeaseExpired -Neo.TransientError.Transaction.MaximumTransactionLimitReached ------ - -**Removed:** - -[source, status codes, role="noheader"] ------ -Neo.ClientError.LegacyIndex.LegacyIndexNotFound -Neo.ClientError.Request.TransactionRequired -Neo.ClientError.Schema.ConstraintVerificationFailed -Neo.ClientError.Security.EncryptionRequired -Neo.ClientError.Statement.LabelNotFound -Neo.ClientNotification.Statement.CreateUniqueUnavailableWarning -Neo.ClientNotification.Statement.JoinHintUnsupportedWarning -Neo.ClientNotification.Statement.PlannerUnavailableWarning -Neo.ClientNotification.Statement.PlannerUnsupportedWarning -Neo.DatabaseError.Schema.LabelLimitReached -Neo.TransientError.Cluster.NoLeaderAvailable -Neo.TransientError.General.DatabaseUnavailable -Neo.TransientError.Network.CommunicationError -Neo.TransientError.Schema.SchemaModifiedConcurrently -Neo.TransientError.Transaction.InstanceStateChanged -Neo.TransientError.Transaction.LockSessionExpired ------ +:description: This page lists changes to the error framework and deprecations. + += Changes and deprecations + +Starting from 2025.04, using the error messages programmatically is deprecated. +Because error messages might change in a future release, please parse or use GQLSTATUS error codes in your application code. +For details, see xref:errors/gql-errors/index.adoc[GQLSTATUS error codes]. + + +== Deprecated notifications + +The following notifications have been deprecated: + +.Notification details +[cols="<1s,<4"] +|=== +|Neo4j code +m|Neo.ClientNotification.Statement.FeatureDeprecationWarning +|Title +a|This feature is deprecated and will be removed in future versions. +|Descriptions +a| +- The procedure has a deprecated field. (`%s`) +- The function has a deprecated field. (`%s`) +- Creating an entity (`%s`) and referencing that entity in a property definition in the same CREATE is deprecated. +- Merging an entity (`%s`) and referencing that entity in a property definition in the same MERGE is deprecated. +- The Unicode character `%s` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. +To continue using it, escape the identifier by adding backticks around the identifier `%s`. +- The character with the Unicode representation `%s` is deprecated for unescaped identifiers and will not be supported in the future. +To continue using it, escape the identifier by adding backticks around the identifier `%s`. +- All subqueries in a `UNION [ALL]` should have the same ordering for the return columns. +[NOTE] +In versions 5.5 to 5.25, using differently ordered return items in a `UNION [ALL]` clause is deprecated. +However, starting from version 5.26, the deprecation has been withdrawn following cost-benefit analysis and valuable user feedback. +- label:deprecated[Deprecated from 5.26 to 2025.05] Databases and aliases with unescaped `.` are deprecated unless the dots indicate that they belong to a composite database. +Names containing `.` should be escaped. (`%s`) +[NOTE] +Databases and aliases with unescaped `.` are deprecated in versions 5.26 to 2025.05. +However, starting from version 2025.06, this deprecation has been withdrawn, and replaced by two new deprecations. +The reason for this change is that the previous quoting rules have been found inconsistent and ambiguous, and will be improved starting from Cypher 25. +For more information, see: + +* xref:notifications/all-notifications.adoc#_graph_reference_deprecation[Using separately backticked name parts in graph references] +* xref:notifications/all-notifications.adoc#_graph_reference_deprecation_use[Using separately backticked name parts in graph references in USE clause] +* link:https://neo4j.com/docs/cypher-manual/25/values-and-types/graph-references[Cypher manual -> Graph references]. +- label:deprecated[Deprecated in 2025.06] Graph references with separately backticked name parts (`%s`) are deprecated. In future Cypher versions, use parameters or backtick the entire name (`%s`). +- label:deprecated[Deprecated in 2025.06] Graph references with separately backticked name parts (`%s`) are deprecated. In future Cypher versions, remove the backticks (`%s`). +- label:deprecated[Deprecated in 2025.11] The namespace of the invoked user-defined function is deprecated. (`%s`). +- label:deprecated[Deprecated in 2025.11] The namespace of the invoked user-defined procedure is deprecated. (`%s`). +- label:deprecated[Deprecated in 2025.11] The namespace of the invoked user-defined function is deprecated and the function is shadowing an internal function. (`%s`). + +|Category +m|DEPRECATION +|GQLSTATUS code +m|01N00 +|Status description +a|warn: feature deprecated. `{ <> }` +|Classification +m|DEPRECATION +|SeverityLevel +m|WARNING +|=== \ No newline at end of file From 3ba85b2291435ae0e2d8d340bec97343314d7225 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Tue, 18 Nov 2025 15:10:10 +0000 Subject: [PATCH 2/9] update the changelog --- modules/ROOT/pages/changelogs.adoc | 73 ++++++++-------------------- modules/ROOT/pages/errors/index.adoc | 2 +- 2 files changed, 20 insertions(+), 55 deletions(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index 342356a7..327601d1 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -2,61 +2,26 @@ = Changes and deprecations -Starting from 2025.04, using the error messages programmatically is deprecated. + +== 2025.04 + +Using the error messages programmatically is deprecated. Because error messages might change in a future release, please parse or use GQLSTATUS error codes in your application code. For details, see xref:errors/gql-errors/index.adoc[GQLSTATUS error codes]. -== Deprecated notifications - -The following notifications have been deprecated: - -.Notification details -[cols="<1s,<4"] -|=== -|Neo4j code -m|Neo.ClientNotification.Statement.FeatureDeprecationWarning -|Title -a|This feature is deprecated and will be removed in future versions. -|Descriptions -a| -- The procedure has a deprecated field. (`%s`) -- The function has a deprecated field. (`%s`) -- Creating an entity (`%s`) and referencing that entity in a property definition in the same CREATE is deprecated. -- Merging an entity (`%s`) and referencing that entity in a property definition in the same MERGE is deprecated. -- The Unicode character `%s` is deprecated for unescaped identifiers and will be considered as a whitespace character in the future. -To continue using it, escape the identifier by adding backticks around the identifier `%s`. -- The character with the Unicode representation `%s` is deprecated for unescaped identifiers and will not be supported in the future. -To continue using it, escape the identifier by adding backticks around the identifier `%s`. -- All subqueries in a `UNION [ALL]` should have the same ordering for the return columns. -[NOTE] -In versions 5.5 to 5.25, using differently ordered return items in a `UNION [ALL]` clause is deprecated. -However, starting from version 5.26, the deprecation has been withdrawn following cost-benefit analysis and valuable user feedback. -- label:deprecated[Deprecated from 5.26 to 2025.05] Databases and aliases with unescaped `.` are deprecated unless the dots indicate that they belong to a composite database. -Names containing `.` should be escaped. (`%s`) -[NOTE] -Databases and aliases with unescaped `.` are deprecated in versions 5.26 to 2025.05. -However, starting from version 2025.06, this deprecation has been withdrawn, and replaced by two new deprecations. -The reason for this change is that the previous quoting rules have been found inconsistent and ambiguous, and will be improved starting from Cypher 25. -For more information, see: - -* xref:notifications/all-notifications.adoc#_graph_reference_deprecation[Using separately backticked name parts in graph references] -* xref:notifications/all-notifications.adoc#_graph_reference_deprecation_use[Using separately backticked name parts in graph references in USE clause] -* link:https://neo4j.com/docs/cypher-manual/25/values-and-types/graph-references[Cypher manual -> Graph references]. -- label:deprecated[Deprecated in 2025.06] Graph references with separately backticked name parts (`%s`) are deprecated. In future Cypher versions, use parameters or backtick the entire name (`%s`). -- label:deprecated[Deprecated in 2025.06] Graph references with separately backticked name parts (`%s`) are deprecated. In future Cypher versions, remove the backticks (`%s`). -- label:deprecated[Deprecated in 2025.11] The namespace of the invoked user-defined function is deprecated. (`%s`). -- label:deprecated[Deprecated in 2025.11] The namespace of the invoked user-defined procedure is deprecated. (`%s`). -- label:deprecated[Deprecated in 2025.11] The namespace of the invoked user-defined function is deprecated and the function is shadowing an internal function. (`%s`). - -|Category -m|DEPRECATION -|GQLSTATUS code -m|01N00 -|Status description -a|warn: feature deprecated. `{ <> }` -|Classification -m|DEPRECATION -|SeverityLevel -m|WARNING -|=== \ No newline at end of file +== 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. +This field is used to provide more detailed information about the error. + +* A new JSON template is available for the query log, which is the default set in _server_log.xml_. +It contains the `errorInfo` entry, but not the `failureReason` entry, which is switched off by default. + + +ifndef::backend-pdf[] +[discrete.glossary] +== Glossary + +include::partial$glossary.adoc[] +endif::[] \ No newline at end of file diff --git a/modules/ROOT/pages/errors/index.adoc b/modules/ROOT/pages/errors/index.adoc index 8d559c68..a5f40d1a 100644 --- a/modules/ROOT/pages/errors/index.adoc +++ b/modules/ROOT/pages/errors/index.adoc @@ -185,7 +185,7 @@ On the driver side, the Neo4jException is extended with the corresponding method The driver receives the Failure Bolt message and extracts the status code and the error message. Then, it constructs an exception with the status code, error message, and other relevant information, and sends it to the client. -// 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. +// 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. // This field is used to provide more detailed information about the error. == Query logging From 1e22829751a3957bbe5726c812c253fa394a8f28 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 19 Nov 2025 12:03:28 +0000 Subject: [PATCH 3/9] Apply suggestion from @NataliaIvakina Co-authored-by: Natalia Ivakina <82437520+NataliaIvakina@users.noreply.github.com> --- modules/ROOT/pages/changelogs.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index 327601d1..a55b3b95 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -15,7 +15,7 @@ For details, see xref:errors/gql-errors/index.adoc[GQLSTATUS error codes]. * 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. This field is used to provide more detailed information about the error. -* A new JSON template is available for the query log, which is the default set in _server_log.xml_. +* A new JSON template is available for the query log, which is the default set in _server_logs.xml_. It contains the `errorInfo` entry, but not the `failureReason` entry, which is switched off by default. From 400f0aebc652092b7cd1a7ba435ad8e4d5dd03d9 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 26 Nov 2025 14:11:40 +0000 Subject: [PATCH 4/9] Update modules/ROOT/pages/changelogs.adoc Co-authored-by: Natalia Ivakina <82437520+NataliaIvakina@users.noreply.github.com> --- modules/ROOT/pages/changelogs.adoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index a55b3b95..4a964c0d 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -16,7 +16,11 @@ For details, see xref:errors/gql-errors/index.adoc[GQLSTATUS error codes]. This field is used to provide more detailed information about the error. * A new JSON template is available for the query log, which is the default set in _server_logs.xml_. -It contains the `errorInfo` entry, but not the `failureReason` entry, which is switched off by default. +It contains the `errorInfo` entry, but not the `failureReason` entry, which is switched off by default starting from 2025.05. + +For more details about the JSON template for the query log, refer to the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#_json_format_log_entries[Operations manual -> Monitoring -> Logging]. + +To learn more about the JSON object `errorInfo` in the query log, visit the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations manual -> Logging -> GQL error information]. ifndef::backend-pdf[] From e55dcba9631674bc83aa6e69ae10db8c17028700 Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 26 Nov 2025 17:41:39 +0000 Subject: [PATCH 5/9] apply suggestions from review --- modules/ROOT/pages/changelogs.adoc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index 4a964c0d..eb3cdb36 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -2,6 +2,12 @@ = Changes and deprecations +== 2025.05 + +Starting from 2025.05, the `failureReason` in the JSON template of the query log, is deprecated and switched off by default. +Use the `errorInfo` entry instead. + +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]. == 2025.04 @@ -15,12 +21,8 @@ For details, see xref:errors/gql-errors/index.adoc[GQLSTATUS error codes]. * 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. This field is used to provide more detailed information about the error. -* A new JSON template is available for the query log, which is the default set in _server_logs.xml_. -It contains the `errorInfo` entry, but not the `failureReason` entry, which is switched off by default starting from 2025.05. - -For more details about the JSON template for the query log, refer to the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#_json_format_log_entries[Operations manual -> Monitoring -> Logging]. - -To learn more about the JSON object `errorInfo` in the query log, visit the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#gql-error-information[Operations manual -> Logging -> GQL error information]. +* A new JSON template is available for the query log, which is the default set in _server_logs.xml_. + +For more details, see the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#_json_format_log_entries[Operations manual -> Monitoring -> Logging]. ifndef::backend-pdf[] From 3659ec9d7d260d4bbb2ab6460ab6332ad86b956d Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Wed, 26 Nov 2025 18:07:16 +0000 Subject: [PATCH 6/9] update the use of error messages programmatically --- modules/ROOT/pages/changelogs.adoc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index eb3cdb36..996764d5 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -11,10 +11,9 @@ For more information about `errorInfo`, refer to link:https://neo4j.com/docs/ope == 2025.04 -Using the error messages programmatically is deprecated. -Because error messages might change in a future release, please parse or use GQLSTATUS error codes in your application code. -For details, see xref:errors/gql-errors/index.adoc[GQLSTATUS error codes]. - +Using the error messages programmatically is deprecated and might change in a future release. +Therefore, parsing the error messages or the status descriptions and incorporating them into scripts is not recommended. +If you need to handle errors programmatically, please use the GQLSTATUS error codes, for example, `22NC5`. == 2025.01 From 668ce02401e442488d389bb48ff6b1ab4d972ecc Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Thu, 27 Nov 2025 15:02:14 +0000 Subject: [PATCH 7/9] comment out the mention of _status_parameters field --- modules/ROOT/pages/changelogs.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index 996764d5..a61bc5ca 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -17,8 +17,8 @@ If you need to handle errors programmatically, please use the GQLSTATUS error co == 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. -This field is used to provide more detailed information about the error. +// * 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. +// This field is used to provide more detailed information about the error. * A new JSON template is available for the query log, which is the default set in _server_logs.xml_. + For more details, see the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#_json_format_log_entries[Operations manual -> Monitoring -> Logging]. From eee0078c451104416bf0cc367f78881938b7a10e Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Thu, 27 Nov 2025 15:03:06 +0000 Subject: [PATCH 8/9] remove the bullet --- modules/ROOT/pages/changelogs.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/changelogs.adoc b/modules/ROOT/pages/changelogs.adoc index a61bc5ca..94713641 100644 --- a/modules/ROOT/pages/changelogs.adoc +++ b/modules/ROOT/pages/changelogs.adoc @@ -20,7 +20,7 @@ If you need to handle errors programmatically, please use the GQLSTATUS error co // * 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. // This field is used to provide more detailed information about the error. -* A new JSON template is available for the query log, which is the default set in _server_logs.xml_. + +A new JSON template is available for the query log, which is the default set in _server_logs.xml_. + For more details, see the link:https://neo4j.com/docs/operations-manual/current/monitoring/logging/#_json_format_log_entries[Operations manual -> Monitoring -> Logging]. From 7150091a6066aea58bc6664fc576fbed783bb18a Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Thu, 27 Nov 2025 16:26:49 +0000 Subject: [PATCH 9/9] comment out the mention of _status_parameters field in the GQLSTATUS notification object table --- modules/ROOT/pages/notifications/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/notifications/index.adoc b/modules/ROOT/pages/notifications/index.adoc index d096be59..dc9fa53a 100644 --- a/modules/ROOT/pages/notifications/index.adoc +++ b/modules/ROOT/pages/notifications/index.adoc @@ -60,7 +60,7 @@ Additional helper methods are exposed for some useful fields. !`_classification` ! The Neo4j category of the notification. ! `_position` ! The position, given by row and column, where the notification is relevant in the query text. -! `_status_parameters`! A map that contains all variable parts of the status description. +// ! `_status_parameters`! A map that contains all variable parts of the status description. !=== |===