Error when updating from CORE to SCALE

Finally getting around to updating off CORE. Went through the documentation and prepared everything (including updating CORE to 13.0-U6.7).

I’d prefer to do an in-place update if possible (avoid the clean install option). However, when I performed the update, I’m receiving an error (identical error via update “train”, and via the manual update file):

[EFAULT] Traceback (most recent call last): File “/usr/local/lib/python3.9/runpy.py”, line 197, in _run_module_as_main return _run_code(code, main_globals, None, File “/usr/local/lib/python3.9/runpy.py”, line 87, in _run_code exec(code, run_globals) File “/mnt/Mr-Lunt/squashfs-root/truenas_install/main.py”, line 21, in from .utils import getmntinfo, get_pids File “/mnt/Mr-Lunt/squashfs-root/truenas_install/utils.py”, line 9, in @dataclass(frozen=True, kw_only=True) TypeError: dataclass() got an unexpected keyword argument ‘kw_only’

When I did the Manual Update File, I got this “More Info”:

Error: Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/middlewared/job.py”, line 355, in run
await self.future
File “/usr/local/lib/python3.9/site-packages/middlewared/job.py”, line 391, in __run_body
rv = await self.method(*([self] + args))
File “/usr/local/lib/python3.9/site-packages/middlewared/schema.py”, line 981, in nf
return await f(*args, **kwargs)
File “/usr/local/lib/python3.9/site-packages/middlewared/plugins/update.py”, line 389, in file
await self.middleware.call(‘update.install_manual_impl’, job, destfile, dest_extracted)
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 1285, in call
return await self._call(
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 1253, in call
return await self.run_in_executor(prepared_call.executor, methodobj, *prepared_call.args)
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 1158, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
File “/usr/local/lib/python3.9/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/update
/install_freebsd.py", line 66, in install_manual_impl
return self.install_scale(job, path)
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/update
/install_freebsd.py", line 95, in install_scale
return self.middleware.call_sync(
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 1312, in call_sync
return methodobj(*prepared_call.args)
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/update
/install.py", line 71, in install_scale
raise CallError(stderr)
middlewared.service_exception.CallError: [EFAULT] Traceback (most recent call last):
File “/usr/local/lib/python3.9/runpy.py”, line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File “/usr/local/lib/python3.9/runpy.py”, line 87, in _run_code
exec(code, run_globals)
File “/mnt/Mr-Lunt/squashfs-root/truenas_install/main.py”, line 21, in
from .utils import getmntinfo, get_pids
File “/mnt/Mr-Lunt/squashfs-root/truenas_install/utils.py”, line 9, in
@dataclass(frozen=True, kw_only=True)
TypeError: dataclass() got an unexpected keyword argument ‘kw_only’

Any ideas how to interpret this? Should I be concerned about attempting a clean install at this point?

Thanks in advance.

Not an expert, but in reality, I would just do a clean install, if you are virtualized, it shouldn’t be too difficult I believe

Are you following the guide for upgrading from Core or just trying to jump directly to 25.04 (latter being unsupported and broken)?

I’m not sure what the difference is between “upgrading from Core” and “trying to jump directly to 25.04”. I’m following the 25.04 documentation page for “Community Migrations” (can’t link to it), and it’s failing for the 2nd and 3rd migration methods.

@darrenbest I had the same problem tonight. I was able to install the 24.04 manual update file, then update using the UI to 25.04.

“TrueNAS-SCALE-24.04.2.5.update” is the file I used.

Good luck!

Going from 24.04 straight to 25.04 is technically incorrect, but you may have gotten away with it because you had no apps set up.

24.10 lays a lot of groundwork for the continued apps rework in later versions, which is an example of why upgrading incrementally is what is recommended.

Okay, so I had not browsed the forums very thoroughly, but I had assumed that the TrueNAS “Documentation Hub” page (that says that I can update directly from CORE 13.0-U6.7 to SCALE 25.04) was accurate. You’re suggesting that this is not the case?

If so, what is your current suggested path (if I want to avoid a clean install)? 13.0-U6.7 → 24.04 → 24.10 → 25.04?

Thanks.

It seems like some references were missed when the documentation was updated, but yes as outlined here:

You can use the UI to upgrade from 13.0 to 24.04 and then step through the upgrade process from there. Or you can save a config file on 13.0, install 25.04, and then upload your previous config.

No, my post was a response to the specific statement I had quoted.

Support migrations from CORE can be seen here:

Scroll down and you will see a schematic upgrade path for the Community Edition.