Restore failure

I’m trying to restore my HA onto a VM after a bare metal failure but the restore process is failing. Supervisor logs below. Any help greatly appreciated.

2026-01-27 16:06:03.056 ERROR (MainThread) [supervisor.backups.manager] Restore 42cae3d0 error
Traceback (most recent call last):
File “/usr/src/supervisor/supervisor/backups/manager.py”, line 727, in _do_restore
async with backup.open(location):
~~~~~~~~~~~^^^^^^^^^^
File “/usr/local/lib/python3.13/contextlib.py”, line 214, in aenter
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/supervisor/supervisor/backups/backup.py”, line 525, in open
self._tmp = await self.sys_run_in_executor(_extract_backup)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/concurrent/futures/thread.py”, line 59, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.13/site-packages/sentry_sdk/integrations/threading.py”, line 176, in wrapped_fn
return fn(*args, **kwargs)
File “/usr/src/supervisor/supervisor/backups/backup.py”, line 516, in _extract_backup
tar.extractall(
~~~~~~~~~~~~~~^
path=tmp.name,
^^^^^^^^^^^^^^
members=secure_path(tar),
^^^^^^^^^^^^^^^^^^^^^^^^^
filter=“fully_trusted”,
^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/usr/local/lib/python3.13/tarfile.py”, line 2355, in extractall
self._extract_one(tarinfo, path, set_attrs=not tarinfo.isdir(),
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
numeric_owner=numeric_owner,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
filter_function=filter_function)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 2458, in _extract_one
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
set_attrs=set_attrs,
^^^^^^^^^^^^^^^^^^^^
numeric_owner=numeric_owner,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
filter_function=filter_function,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
extraction_root=path)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 2547, in _extract_member
self.makefile(tarinfo, targetpath)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 2604, in makefile
copyfileobj(source, target, tarinfo.size, ReadError, bufsize)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 252, in copyfileobj
raise exception(“unexpected end of data”)
tarfile.ReadError: unexpected end of data
2026-01-27 16:06:03.070 INFO (MainThread) [supervisor.backups.manager] Restore 42cae3d0 starting stage await_home_assistant_restart
2026-01-27 16:06:03.118 ERROR (MainThread) [asyncio] Task exception was never retrieved
future: <Task finished name=‘Task-500’ coro=<BackupManager.do_restore_partial() done, defined at /usr/src/supervisor/supervisor/jobs/decorator.py:245> exception=BackupError(‘Restore 42cae3d0 error, see supervisor logs’)>
Traceback (most recent call last):
File “/usr/src/supervisor/supervisor/backups/manager.py”, line 727, in _do_restore
async with backup.open(location):
~~~~~~~~~~~^^^^^^^^^^
File “/usr/local/lib/python3.13/contextlib.py”, line 214, in aenter
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/supervisor/supervisor/backups/backup.py”, line 525, in open
self._tmp = await self.sys_run_in_executor(_extract_backup)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/concurrent/futures/thread.py”, line 59, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.13/site-packages/sentry_sdk/integrations/threading.py”, line 176, in wrapped_fn
return fn(*args, **kwargs)
File “/usr/src/supervisor/supervisor/backups/backup.py”, line 516, in _extract_backup
tar.extractall(
~~~~~~~~~~~~~~^
path=tmp.name,
^^^^^^^^^^^^^^
members=secure_path(tar),
^^^^^^^^^^^^^^^^^^^^^^^^^
filter=“fully_trusted”,
^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/usr/local/lib/python3.13/tarfile.py”, line 2355, in extractall
self._extract_one(tarinfo, path, set_attrs=not tarinfo.isdir(),
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
numeric_owner=numeric_owner,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
filter_function=filter_function)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 2458, in _extract_one
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
set_attrs=set_attrs,
^^^^^^^^^^^^^^^^^^^^
numeric_owner=numeric_owner,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
filter_function=filter_function,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
extraction_root=path)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 2547, in _extract_member
self.makefile(tarinfo, targetpath)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 2604, in makefile
copyfileobj(source, target, tarinfo.size, ReadError, bufsize)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/tarfile.py”, line 252, in copyfileobj
raise exception(“unexpected end of data”)
tarfile.ReadError: unexpected end of data
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/usr/src/supervisor/supervisor/jobs/decorator.py”, line 307, in wrapper
raise err
File “/usr/src/supervisor/supervisor/jobs/decorator.py”, line 299, in wrapper
return await method(obj, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/supervisor/supervisor/backups/manager.py”, line 937, in do_restore_partial
success = await self._do_restore(
^^^^^^^^^^^^^^^^^^^^^^^
…<6 lines>…
)
^
File “/usr/src/supervisor/supervisor/backups/manager.py”, line 761, in _do_restore
raise BackupError(
f"Restore {backup.slug} error, see supervisor logs"
) from err
supervisor.exceptions.BackupError: Restore 42cae3d0 error, see supervisor logs