pg_restore: [archiver] did not find magic string in file header

You're restoring with pg_restore --format=c ... but the pg_dump was not done with --format=c, it was done with the default, plain format.

From pg_dump manpage:

  -F format, --format=format
       Selects the format of the output.  format can be one of the
       following:

       p, plain
           Output a plain-text SQL script file (the default).

A dump in plain format should be fed directly to the psql command-line tool, pg_restore doesn't know what it is, which is the reason of this error message: did not find magic string in file header.

You can look directly at the dump file with more out.sql in shell and you'll see readable SQL commands. Restore it with psql -f out.sql [other options]. You will probably want to create the target database first, as the --create option is not present in the pg_dump invocation.

On the other hand, you may reinvoke the dump adding --format=c to its options. Then that would be the opposite: pg_restore must be used to interpret a dump file in the custom format.