I create daily dumps in a K8s cluster using helm
with neo4j/neo4j
version 5.21.0
and neo4j-admin database dump
command. Then I wanted to load the dumps into a local volume using neo4j-admin
version 5.21.2
(same with version 2025.02.0
), which brings up the following error:
Caused by: .neo4j.cli.CommandFailedException: Not a valid Neo4j archive: /backups/neo4j.dump
Caused by: com.github.luben.zstd.ZstdIOException: Unknown frame descriptor
Same for running neo4j-admin database check
on the dump file.
Actual behavior
The dumps worked fine for several months using the exact same toolchain, but now do not work for a couple of days anymore. So sometimes they work and sometimes not. The dump file size is about 1 GiB and the "uncompressed" size according to neo4j-admin database load --info
is about 5 GiB. It seems that the dump
command creates invalid archives or that the load
command thinks they are invalid.
Expected behavior
The database dump files can be processed with neo4j-admin database load
and neo4j database check
properly.
Question
Can the dump files be inspected with another tool to check their validity? Since Zstd is used, I tried to extract them with another zstd tooling, but it complains about that it is not a valid archive, even for the dump files checked valid with the neo4j-admin
tooling.
Logs
Log of neo4j-admin database load
with stacktrace:
Done: 124 files, 4.858GiB processed.
Failed to load database 'neo4j': Not a valid Neo4j archive: /backups/neo4j.dump
Load failed for databases: 'neo4j'
.neo4j.cli.CommandFailedException: Load failed for databases: 'neo4j'
at .neo4jmandline.dbms.LoadCommand.checkFailure(LoadCommand.java:300)
at .neo4jmandline.dbms.LoadCommand.loadDump(LoadCommand.java:283)
at .neo4jmandline.dbms.LoadCommand.loadDump(LoadCommand.java:241)
at .neo4jmandline.dbms.LoadCommand.execute(LoadCommand.java:169)
at .neo4j.cli.AbstractCommand.call(AbstractCommand.java:92)
at .neo4j.cli.AbstractCommand.call(AbstractCommand.java:37)
at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
at picocli.CommandLine.execute(CommandLine.java:2170)
at .neo4j.cli.AdminTool.execute(AdminTool.java:94)
at .neo4j.cli.AdminTool.main(AdminTool.java:82)
Caused by: .neo4j.cli.CommandFailedException: Not a valid Neo4j archive: /backups/neo4j.dump
at .neo4jmandline.dbms.LoadDumpExecutor.load(LoadDumpExecutor.java:119)
at .neo4jmandline.dbms.LoadDumpExecutor.execute(LoadDumpExecutor.java:80)
at .neo4jmandline.dbms.LoadCommand.loadDump(LoadCommand.java:274)
... 14 more
Caused by: .neo4j.dbms.archive.IncorrectFormat: /backups/neo4j.dump
at .neo4j.dbms.archive.Loader.nextEntry(Loader.java:190)
at .neo4j.dbms.archive.Loader.load(Loader.java:120)
at .neo4jmandline.dbms.LoadDumpExecutor.load(LoadDumpExecutor.java:103)
... 16 more
Caused by: com.github.luben.zstd.ZstdIOException: Unknown frame descriptor
at com.github.luben.zstd.ZstdInputStreamNoFinalizer.readInternal(ZstdInputStreamNoFinalizer.java:184)
at com.github.luben.zstd.ZstdInputStreamNoFinalizer.read(ZstdInputStreamNoFinalizer.java:136)
at .apachemons.io.IOUtils.skip(IOUtils.java:2414)
at .apachemonspress.utils.IOUtils.skip(IOUtils.java:282)
at .apachemonspress.archivers.tar.TarArchiveInputStream.consumeRemainderOfLastBlock(TarArchiveInputStream.java:317)
at .apachemonspress.archivers.tar.TarArchiveInputStream.getRecord(TarArchiveInputStream.java:501)
at .apachemonspress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:415)
at .apachemonspress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:389)
at .apachemonspress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
at .neo4j.dbms.archive.Loader.nextEntry(Loader.java:188)
... 18 more
Log of neo4j-admin database dump
:
Done: 124 files, 4.858GiB processed.
2025-03-10 01:03:30.303+0000 INFO [o.n.c.d.DumpCommand] Dump completed successfully