TrueNAS 25.04.2.3 Is Now Available!

The TrueNAS team is pleased to release TrueNAS 25.04.2.3!

This is a small maintenance release that includes stability improvements for TrueNAS Enterprise High Availability (HA) environments that use NVMe drives and sharing.

See the 25.04.2.3 Release Notes for more details.

Documentation : TrueNAS Documentation Hub
Download : https://www.truenas.com/download-truenas-community-edition

Thank you for using TrueNAS! As always, we appreciate your feedback!

2 Likes

This version will behave in a functionally identical way to TrueNAS 25.04.2.1 for CE deployments. Same features and bugs.

1 Like

So this only affects HA plus NVMe, not CE plus NVMe?

I thought HA was enterprise only?

1 Like

Gotta love it when we don’t pay extra for those bugs :clown_face:

Oh yes, I don’t pay, so still no added cost.

1 Like

Yes

1 Like

Are release notes going to be published for this version?

They’re already linked above

25.04.2.3
August 26, 2025
The TrueNAS team is pleased to release TrueNAS 25.04.2.3! This is a small maintenance release that includes stability improvements for TrueNAS Enterprise High Availability (HA) environments that use NVMe drives and sharing.

Must be a weird caching thing on my end then, the latest release notes I see on that link are still for 25.04.2.1

That’s a shame, I was hoping it would stop me having to force restart every 5 days.

I don’t know why you would need to force restart every 5 days, but that’s very unusual.

1 Like

should the software status page should the tester and maybe early adopter be updated to 25.04.2.3 ?

This particular hot fix is unusual in that we don’t see any Community difference between 25.04.2.1 an 25.04.2.3… so no need for testing.

“testers” will be guided to 25.10.BETA1

Trying to update to 25.4.2.3 and get the following error. Using Quad9 DNS, which says not blocked. Resorting to manual update file.

Error: Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/aiohttp/connector.py”, line 1317, in _create_direct_connection
hosts = await self._resolve_host(host, port, traces=traces)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/connector.py”, line 971, in _resolve_host
return await asyncio.shield(resolved_host_task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/connector.py”, line 1002, in _resolve_host_with_throttle
addrs = await self._resolver.resolve(host, port, family=self._family)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/resolver.py”, line 38, in resolve
infos = await self._loop.getaddrinfo(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/asyncio/base_events.py”, line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/socket.py”, line 962, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -2] Name or service not known

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

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py”, line 323, in process_method_call
result = await method.call(app, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py”, line 52, in call
result = await self.middleware.call_with_audit(self.name, self.serviceobj, methodobj, params, app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 911, in call_with_audit
result = await self._call(method, serviceobj, methodobj, params, app=app,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 731, in _call
return await self.run_in_executor(prepared_call.executor, methodobj, *prepared_call.args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 624, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 178, in nf
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/update.py”, line 105, in get_trains
trains_data = self.middleware.call_sync(‘update.get_trains_data’)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1030, in call_sync
return self.run_coroutine(methodobj(*prepared_call.args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1070, in run_coroutine
return fut.result()
^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/_base.py”, line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/_base.py”, line 401, in _get_result
raise self.exception
File "/usr/lib/python3/dist-packages/middlewared/plugins/update
/trains.py", line 63, in get_trains_data
**(await self.fetch(f"{self.update_srv}/trains.json"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/plugins/update
/trains.py", line 25, in fetch
async with client.get(url) as resp:
File “/usr/lib/python3/dist-packages/aiohttp/client.py”, line 1359, in aenter
self._resp: _RetType = await self._coro
^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/client.py”, line 663, in _request
conn = await self._connector.connect(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/connector.py”, line 563, in connect
proto = await self._create_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/connector.py”, line 1032, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/aiohttp/connector.py”, line 1323, in _create_direct_connection
raise ClientConnectorDNSError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host update.ixsystems.com:443 ssl:default [Name or service not known]

Can you just test with a normal browsr getting access to the same site.
If not successful, location, ISP and time is useful to know.

I can access https://update.ixsystems.com via Safari.

Still getting validation error via GUI even after manually installing 25.4.2.3 update.

Not sure if relevant, but noticed the URL for the .UPDATE and .ISO includes .NET vs .COM

https://download.sys.truenas.net/TrueNAS-SCALE-Fangtooth/25.04.2.3/TrueNAS-SCALE-25.04.2.3.update
https://download.sys.truenas.net/TrueNAS-SCALE-Fangtooth/25.04.2.3/TrueNAS-SCALE-25.04.2.3.iso

When I click on the link on the download page to download previous versions it takes me to a .NET URL which fails to load. I don’t run any blockers on my firewall and turned off Safari Adblock

https://download.sys.truenas.net

Location: West Palm Beach, FL
ISP: ATT Fiber
Date: 9/3/2025
Time: 5:30 EDT

UPDATE: The https://download.sys.truenas.net URL is loading now.

1 Like

irrelevant… we use .net for our infrastructure.

Glad its working.

I still get the validation error via the GUI update page. It’s not working.

I’d suggest starting a thread in General and provide a link here.

I haven’t seen others with the same issue and so don’t know what might be causing your specific difficulties. Is it hardware or history related… or do other see the same issue?

I have 5 systems and every one exhibits the same behavior.

I worked through a similar issue with another user a while back, it looked like problems with accessing the storjshare.io decentralised storage network from their ISP: