Neo4j 错误代码列表

本页面列出了当前的 Neo4j 错误代码,它们会与 GQLSTATUS 错误代码 一起返回,并按类型分组。

自 2025.04 版本起,程序化使用错误消息的做法已被弃用。由于错误消息在未来版本中可能会发生变化,请在应用程序代码中解析或使用 GQLSTATUS 错误代码。有关详情,请参阅 GQLSTATUS 错误代码

客户端错误 (Client errors)

这是 Neo4j 可能返回的所有客户端错误的完整列表及其含义。

Neo4j 代码 描述

Neo.ClientError.ChangeDataCapture.InvalidIdentifier

无效的变更标识符。

Neo.ClientError.Cluster.NotALeader

此服务器无法处理该请求。写请求只能由领导者 (Leader) 处理。

Neo.ClientError.Cluster.Routing

无法将请求路由到合适的服务器。

Neo.ClientError.Database.DatabaseNotFound

请求引用的数据库不存在。

Neo.ClientError.Database.ExistingAliasFound

请求引用了一个带有别名的数据库。

Neo.ClientError.Database.ExistingDatabaseFound

请求引用了一个已存在的数据库。

Neo.ClientError.Database.IllegalAliasChain

检测到非法的别名链。此请求无法执行。

Neo.ClientError.General.ForbiddenOnReadOnlyDatabase

这是一个只读数据库,不允许进行写入或修改操作。

Neo.ClientError.General.InvalidArguments

请求包含空字段或不允许的字段。

Neo.ClientError.General.TransactionOutOfMemoryError

事务占用的内存超过了允许的范围。事务允许的最大内存大小可以在 Neo4j 配置文件(通常为 conf/neo4j.conf,如果使用 Neo4j Desktop,则可通过用户界面找到)中的 db.memory.transaction.max_size 进行配置。

Neo.ClientError.General.UpgradeRequired

此事务要求数据库处于比当前更高的内核版本。请确保在重试此操作前,已正确升级 Neo4j DBMS。

Neo.ClientError.General.WriteOnReadOnlyAccessDatabase

此数据库处于只读模式,不允许进行写入或修改操作。

Neo.ClientError.Procedure.ProcedureCallFailed

调用存储过程失败。具体原因请参阅详细的错误描述。

Neo.ClientError.Procedure.ProcedureNotFound

请求引用的存储过程未在该数据库实例中注册。如果您在集群设置中部署自定义存储过程,请确保集群中的所有实例都已部署该存储过程的 jar 文件。

Neo.ClientError.Procedure.ProcedureRegistrationFailed

数据库无法注册存储过程,详细信息请参考相关的错误消息。

Neo.ClientError.Procedure.ProcedureTimedOut

存储过程未在指定的超时时间内完成。您可以尝试使用更长的超时时间重新执行。

Neo.ClientError.Procedure.TypeError

存储过程正在使用或接收无效类型的值。

Neo.ClientError.Request.Invalid

客户端提供了无效的请求。

Neo.ClientError.Request.InvalidFormat

客户端提供的请求缺少必填字段或包含不允许的值。

Neo.ClientError.Request.InvalidUsage

客户端发出了请求,但未及时消耗输出缓冲区。

Neo.ClientError.Routing.DbmsInPanic

服务器处于紧急 (panic) 状态。

Neo.ClientError.Routing.RoutingFailed

路由失败。

Neo.ClientError.Schema.ConstraintAlreadyExists

无法执行此操作,因为它与现有的约束冲突。

Neo.ClientError.Schema.ConstraintNotFound

请求(直接或间接)引用了一个不存在的约束。

Neo.ClientError.Schema.ConstraintValidationFailed

违反了数据库强制执行的约束。

Neo.ClientError.Schema.ConstraintViolation

添加或更改的索引条目违反了约束。

Neo.ClientError.Schema.ConstraintWithNameAlreadyExists

无法执行此操作,因为已存在同名的约束。

Neo.ClientError.Schema.EquivalentSchemaRuleAlreadyExists

无法执行此操作,因为已存在等效的模式规则。

Neo.ClientError.Schema.ForbiddenOnConstraintIndex

无法在指定的索引上执行请求的操作,因为该索引属于约束的一部分。如果您想删除该索引,则必须同时删除该约束。

Neo.ClientError.Schema.IndexAlreadyExists

无法执行此操作,因为它与现有的索引冲突。

Neo.ClientError.Schema.IndexMultipleFound

请求通过模式引用了一个索引,但找到了多个匹配的索引。

Neo.ClientError.Schema.IndexNotApplicable

请求不包含索引所需的属性。

Neo.ClientError.Schema.IndexNotFound

请求(直接或间接)引用了一个不存在的索引。

Neo.ClientError.Schema.IndexWithNameAlreadyExists

无法执行此操作,因为已存在同名的索引。

Neo.ClientError.Schema.RepeatedLabelInSchema

由于模式中有重复的标签,无法创建索引或约束。

Neo.ClientError.Schema.RepeatedPropertyInCompositeSchema

由于模式中有重复的属性,无法创建索引或约束。

Neo.ClientError.Schema.RepeatedRelationshipTypeInSchema

由于模式中有重复的关系类型,无法创建索引或约束。

Neo.ClientError.Schema.SchemaRuleEntrySizeLimitError

模式规则条目超过了允许的最大大小。

Neo.ClientError.Schema.TokenLengthError

令牌名称(如标签、关系类型或属性键)过长。

Neo.ClientError.Schema.TokenNameError

令牌名称无效(标签、关系类型、属性键)。令牌不能为空字符串且不能为 null。

Neo.ClientError.Security.AuthenticationRateLimit

客户端连续多次提供了错误的身份验证详细信息。

Neo.ClientError.Security.AuthorizationExpired

存储的授权信息已过期。请重新连接。

Neo.ClientError.Security.CredentialsExpired

凭据已过期,需要更新。

Neo.ClientError.Security.Forbidden

尝试执行未经授权的操作。

Neo.ClientError.Security.TokenExpired

身份验证提供程序的令牌已过期。

Neo.ClientError.Security.Unauthorized

由于身份验证失败,客户端未经授权。

Neo.ClientError.Statement.AccessMode

由于访问模式冲突,请求无法完成。

Neo.ClientError.Statement.ArgumentError

语句尝试使用无效参数执行操作。

Neo.ClientError.Statement.ArithmeticError

算术运算使用无效,例如除以零。

Neo.ClientError.Statement.ConstraintVerificationFailed

数据库中的数据违反了语句强制执行的约束。

Neo.ClientError.Statement.EntityNotFound

语句引用了一个不存在的实体。

Neo.ClientError.Statement.ExternalResourceFailed

访问外部资源失败。

Neo.ClientError.Statement.InvalidTargetDatabaseError

指定的数据库不是此命令的有效目标。

Neo.ClientError.Statement.NotSystemDatabaseError

这是一个管理命令,必须针对 system 数据库执行。

Neo.ClientError.Statement.ParameterMissing

语句引用了请求中未提供的参数。

Neo.ClientError.Statement.PropertyNotFound

语句引用了一个不存在的属性。

Neo.ClientError.Statement.RemoteExecutionClientError

由于客户端错误,数据库无法执行语句的远程部分。

Neo.ClientError.Statement.RuntimeUnsupportedError

所选运行时不支持此查询。

Neo.ClientError.Statement.SemanticError

语句在语法上有效,但表达了数据库无法执行的操作。

Neo.ClientError.Statement.SyntaxError

语句包含无效或不支持的语法。

Neo.ClientError.Statement.TypeError

语句尝试对操作不支持类型的值执行操作。

Neo.ClientError.Statement.UnsupportedAdministrationCommand

此管理命令不受支持。

Neo.ClientError.Statement.UnsupportedOperationError

此查询执行了在此上下文中不支持的操作。

Neo.ClientError.Transaction.ForbiddenDueToTransactionType

事务类型错误,无法处理该请求。例如,在已执行模式修改的事务中,无法随后执行数据操作,反之亦然。

Neo.ClientError.Transaction.InvalidBookmark

无法解析提供的书签。您应该只提供由 Neo4j 先前生成的书签。可能您生成了自己的书签,或者修改了由 Neo4j 生成的书签。

Neo.ClientError.Transaction.InvalidBookmarkMixture

禁止混合由不同数据库生成的书签。您只能链接由同一数据库生成的书签。但是,您可以将 system 数据库生成的书签与来自其他数据库的书签链接。

Neo.ClientError.Transaction.LockClientStopped

事务已被终止,因此无法再获取锁。这可能是因为事务运行时间超过了配置的事务超时时间、人工手动终止了事务,或者数据库已关闭。

Neo.ClientError.Transaction.Terminated

已被用户显式终止。

Neo.ClientError.Transaction.TransactionAccessedConcurrently

存在并发请求访问同一个事务,这是不允许的。

Neo.ClientError.Transaction.TransactionHookFailed

事务钩子 (Transaction hook) 失败。

Neo.ClientError.Transaction.TransactionMarkedAsFailed

事务被同时标记为成功和失败。由于失败优先,事务已回滚。

Neo.ClientError.Transaction.TransactionNotFound

请求引用了一个不存在的事务。

Neo.ClientError.Transaction.TransactionTimedOut

事务未在指定的超时时间内完成 (db.transaction.timeout)。您可以尝试使用更长的超时时间重新执行。

Neo.ClientError.Transaction.TransactionTimedOutClientConfiguration

事务未在客户端启动时指定的超时时间内完成。您可以尝试使用更长的超时时间重新执行。

Neo.ClientError.Transaction.TransactionValidationFailed

事务更改未通过验证检查。

瞬态错误 (Transient errors)

这是 Neo4j 可能返回的所有瞬态错误的完整列表及其含义。

Neo4j 代码 描述

Neo.TransientError.ChangeDataCapture.FutureIdentifier

变更标识符指向在此数据库实例上尚未发生的未来事务。

Neo.TransientError.Cluster.ReplicationFailure

复制失败。

Neo.TransientError.General.DatabaseUnavailable

数据库当前无法处理您的请求,请参阅数据库日志以了解更多详细信息。稍后重试请求可能会成功。

Neo.TransientError.General.MemoryPoolOutOfMemoryError

超过了内存池限制。相应的设置可以在错误消息中找到。

Neo.TransientError.General.OutOfMemoryError

内存不足,无法执行当前任务。请尝试增加 Neo4j 配置文件(通常为 conf/neo4j.conf,如果使用 Neo4j Desktop,则可通过用户界面找到)中的 server.memory.heap.max_size

如果您运行的是嵌入式安装,可以使用 -Xmx 命令行标志增加堆内存,然后重启数据库。

Neo.TransientError.General.StackOverFlowError

栈空间不足,无法执行当前任务。这通常被认为是数据库错误,请联系 Neo4j 技术支持。

您可以尝试增加栈大小;例如,要将栈大小设置为 2M,请在 Neo4j 配置文件(通常为 conf/neo4j.conf,如果使用 Neo4j Desktop,则可通过用户界面找到)中添加 server.jvm.additional=-Xss2M

如果您运行的是嵌入式安装,可以添加 -Xss2M 作为命令行标志。

Neo.TransientError.General.TransactionMemoryLimit

内存不足,无法执行当前任务。请尝试增加 Neo4j 配置文件(通常为 conf/neo4j.conf,如果使用 Neo4j Desktop,则可通过用户界面找到)中的 server.memory.off_heap.transaction_max_size,然后重启数据库。

Neo.TransientError.Invalid.ResourceExhaustion

服务器因当前资源耗尽而拒绝了此请求。您可以稍后重试。有关详细信息,请参阅服务器日志。

Neo.TransientError.Request.NoThreadsAvailable

当前没有可用的线程来处理此请求。您可以稍后重试,或考虑增加 Bolt 连接器的最大线程池大小。

Neo.TransientError.Security.AuthProviderFailed

身份验证提供程序请求失败。

Neo.TransientError.Security.AuthProviderTimeout

身份验证提供程序请求超时。

Neo.TransientError.Security.ModifiedConcurrently

用户在处理此请求的同时被修改了。

Neo.TransientError.Statement.ExecutionTimeout

数据库无法及时执行该语句。

Neo.TransientError.Statement.RemoteExecutionTransientError

由于瞬态故障,数据库无法执行语句的远程部分。

Neo.TransientError.Transaction.BookmarkTimeout

书签等待超时。数据库尚未达到指定的版本。

Neo.TransientError.Transaction.ConstraintsChanged

自此事务开始以来,数据库约束已更改。

Neo.TransientError.Transaction.DeadlockDetected

此事务以及至少另一个事务以一种会导致无限等待的方式获取了锁,数据库已将其终止。重试此事务很可能会成功。

Neo.TransientError.Transaction.Interrupted

等待时被中断。

Neo.TransientError.Transaction.LeaderSwitch

由于集群领导者切换,请求无法完成。

Neo.TransientError.Transaction.LeaseExpired

启动此事务时的租约已不再有效。

Neo.TransientError.Transaction.LockAcquisitionTimeout

无法在配置的超时时间内获取锁 (db.lock.acquisition.timeout)。

Neo.TransientError.Transaction.MaximumTransactionLimitReached

由于已达到最大并发执行事务数 (db.transaction.concurrent.maximum),无法启动新事务。您可以稍后重试,或考虑增加允许的最大并发事务数。

Neo.TransientError.Transaction.Outdated

事务观察到的状态在事务活动期间已被应用的更新所失效。如果重试,事务可能会成功。

Neo.TransientError.Transaction.QueryExecutionFailedOnTransaction

由于查询失败,事务被标记为失败。

数据库错误 (Database error)

这是 Neo4j 可能返回的所有数据库错误的完整列表及其含义。

Neo4j 代码 描述

Neo.DatabaseError.ChangeDataCapture.Disabled

当前未为此数据库启用变更数据捕获 (Change Data Capture)。

Neo.DatabaseError.ChangeDataCapture.ScanFailure

无法读取此数据库的变更数据捕获数据。

Neo.DatabaseError.Database.DatabaseLimitReached

已达到数据库数量上限。

Neo.DatabaseError.Database.UnableToStartDatabase

无法启动数据库。

Neo.DatabaseError.Database.Unknown

未知的数据库管理错误。

Neo.DatabaseError.General.IndexCorruptionDetected

请求(直接或间接)引用了一个处于故障状态的索引。该索引需要手动删除并重新创建。

Neo.DatabaseError.General.SchemaCorruptionDetected

遇到格式错误的模式规则。请联系您的技术支持代表。

Neo.DatabaseError.General.StorageDamageDetected

在磁盘上未找到预期的文件集。请从备份中恢复。

Neo.DatabaseError.General.UnknownError

发生未知错误。

Neo.DatabaseError.Schema.ConstraintCreationFailed

创建请求的约束失败。

Neo.DatabaseError.Schema.ConstraintDropFailed

数据库删除请求的约束失败。

Neo.DatabaseError.Schema.IndexCreationFailed

创建索引失败。

Neo.DatabaseError.Schema.IndexDropFailed

数据库删除请求的索引失败。

Neo.DatabaseError.Schema.LabelAccessFailed

请求访问了一个不存在的标签。

Neo.DatabaseError.Schema.PropertyKeyAccessFailed

请求访问了一个不存在的属性。

Neo.DatabaseError.Schema.RelationshipTypeAccessFailed

请求访问了一个不存在的关系类型。

Neo.DatabaseError.Schema.SchemaRuleAccessFailed

请求引用了一个不存在的模式规则。

Neo.DatabaseError.Schema.SchemaRuleDuplicateFound

请求引用的模式规则被定义了多次。

Neo.DatabaseError.Schema.TokenLimitReached

已达到此类型令牌的最大数量,无法再创建此类令牌。

Neo.DatabaseError.Statement.ExecutionFailed

数据库无法执行该语句。

Neo.DatabaseError.Statement.RemoteExecutionFailed

数据库无法执行语句的远程部分。

Neo.DatabaseError.Transaction.LinkedTransactionError

事务被终止,因为执行同一查询的另一个事务遇到了错误。

Neo.DatabaseError.Transaction.TransactionCommitFailed

数据库无法提交该事务。

Neo.DatabaseError.Transaction.TransactionLogError

数据库无法将事务写入日志。

Neo.DatabaseError.Transaction.TransactionRollbackFailed

数据库无法回滚该事务。

Neo.DatabaseError.Transaction.TransactionStartFailed

数据库无法启动该事务。

Neo.DatabaseError.Transaction.TransactionTerminationFailed

数据库无法终止该事务。