Pool doesn't decrypt

After a power outage none of my pools decrypt upon typing in the passphrase. I get this error but am not tech savvy enough to derive help from it. Hope that someone here can point to the mistake im making.

Error: concurrent.futures.process._RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/concurrent/futures/process.py", line 239, in _process_worker
    r = call_item.fn(*call_item.args, **call_item.kwargs)
  File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 97, in main_worker
    res = loop.run_until_complete(coro)
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 53, in _run
    return await self._call(name, serviceobj, methodobj, params=args, job=job)
  File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 45, in _call
    return methodobj(*params)
  File "/usr/local/lib/python3.7/site-packages/middlewared/worker.py", line 45, in _call
    return methodobj(*params)
  File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 965, in nf
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zfs.py", line 390, in import_pool
    'Failed to mount datasets after importing "%s" pool: %s', name_or_guid, str(e), exc_info=True
  File "libzfs.pyx", line 369, in libzfs.ZFS.__exit__
  File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/zfs.py", line 380, in import_pool
    raise CallError(f'Pool {name_or_guid} not found.', errno.ENOENT)
middlewared.service_exception.CallError: [ENOENT] Pool 573962227414056319 not found.
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/pool.py", line 1667, in unlock
    'cachefile': ZPOOL_CACHE_FILE,
  File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1141, in call
    app=app, pipes=pipes, job_on_progress_cb=job_on_progress_cb, io_thread=True,
  File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1081, in _call
    return await self._call_worker(name, *args)
  File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1101, in _call_worker
    return await self.run_in_proc(main_worker, name, args, job)
  File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1036, in run_in_proc
    return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/middlewared/main.py", line 1010, in run_in_executor
    return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [ENOENT] Pool 573962227414056319 not found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/middlewared/job.py", line 349, in run
    await self.future
  File "/usr/local/lib/python3.7/site-packages/middlewared/job.py", line 385, in __run_body
    rv = await self.method(*([self] + args))
  File "/usr/local/lib/python3.7/site-packages/middlewared/schema.py", line 961, in nf
    return await f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/middlewared/plugins/pool.py", line 1679, in unlock
    raise CallError(msg)
middlewared.service_exception.CallError: [EFAULT] Pool could not be imported: 2 devices failed to decrypt.

It helps if you give us your hardware, os and pool / vdev details to understand what is happening. Screenshots may help too.

If you can’t post images, browse some other threads and take the Tutorial by the Bot. Your user trust level should go up and allow posting.

TrueNAS-Bot
Type this in a new reply and send to bring up the tutorial, if you haven’t done it already.

@TrueNAS-Bot start tutorial

1 Like

I finally got time to finish the tutorial.

Hope this helps. As you can see the Pools overview shows an old pool whose disks arent in the NAS anymore. Before the power cut it wasnt shown. Is that a clue what went wrong? Maybe the system looks in a wrong file for the pools and their unlock password.

I don’t have a BSD based VM to test the commands right now. Try running the following in the Shell or CLI.

What does this return? Post back using Preformatted Text (</> or Ctrl+e) on toolbar.

zpool status -v

Do you show previous boot environments?


zpool status -v
  pool: freenas-boot
 state: ONLINE
  scan: scrub repaired 0 in 0 days 00:02:17 with 0 errors on Thu Jul  3 03:47:17 2025

config:

        NAME        STATE     READ WRITE CKSUM
        freenas-boot  ONLINE       0     0     0
          da0p2     ONLINE       0     0     0

errors: No known data errors

Where can I check about the previous boot environments? Without checking I am pretty sure that I dont show them.

I don’t know if you have that feature.
Link for documents https://www.truenas.com/docs/files/FreeNAS-11.3-U5-User-Guide_screen.pdf

The newest is from 2021. Is there a high propability that a boot from different selection is damaging my system even more?

Just be patient and wait for posts. I wouldn’t do anything for now. I messaged to try to get someone who knows that version or the Core / BSD versions.

1 Like

@FreeNAS-LinuxUser just to confirm - you’re 100% positive you’re using the correct passphrase here, because the wrong one will mean an inability to decrypt as well.

This is the legacy GELI encryption, so if I recall correctly listing zpool import from the command prompt should show you a potentially importable pool composed of .eli files. Can we see the results of that, just to see if it can show the files present?

Please post the results of the command using Preformatted text (</>) on toolbar or Ctrl+e. It makes for easier reading