Issue
I get a pg_restore: [archiver] unsupported version (1.xx) in file header
error when I try to restore a logical backup file that was created using Heroku PGBackups (heroku pg:backups:capture
or scheduled backups) or using pg_dump
with one-off dynos.
Resolution
This error indicates there's a PG version compatibility mismatch between the pg_restore
binary used to recover the backup and the logical backup (i.e. the pg_dump
version used to capture the logical backup is either lower or higher than that of pg_restore
). Please make sure that you are using the latest Postgres version. While we do support running pg_dump
and pg_restore
on one-off dynos, they are subject to any version changes depending on our image updates.
You can check the pg_restore
version you're using by running pg_restore --version
.
If you are using a scheduled task or automation to take the logical backups/database dumps, modify the task to ensure that pg_dump
and pg_restore
are using the necessary version to take and restore the backup. This can be done by using the Apt buildpack to install the specific version libraries you need to use the compatible pg_dump
and pg_restore
versions.
If you are using a third-party tool, such as PgAdmin, to restore the provided dump file, the restore may not succeed even with the installed Postgres version being up to date. This is due to third-party tools often bundling their own versions of the pg_restore
binary, that may not be up to date.