TrueNAS 25.10 “Goldeye” – Simpler Deployments, Faster Performance - Blog Post

Yeah, understandable. I mostly use Mellanox/Nvidia networking personally. I’ll be sure to try out NVMe/TCP with a setup! Lot of exciting stuff. Thanks for sharing details.

1 Like

I’ve been running 25.10 nightlies for quite a while and am consistently seeing it either fail to find the newest version or if it finds something, the download fails. Example from 25.10.0-MASTER-20250815-234159"

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 770, in _request
    resp = await handler(req)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 725, in _connect_and_send_request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aiohttp/connector.py", line 642, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aiohttp/connector.py", line 1209, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aiohttp/connector.py", line 1532, in _create_direct_connection
    hosts = await self._resolve_host(host, port, traces=traces)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aiohttp/connector.py", line 1148, in _resolve_host
    return await asyncio.shield(resolved_host_task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError

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 354, in process_method_call
    result = await method.call(app, id_, params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py", line 57, 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 954, in call_with_audit
    result = await self._call(method, serviceobj, methodobj, params, app=app,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 771, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/api/base/decorator.py", line 108, in wrapped
    result = await func(*args)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/update_/profile_.py", line 64, in profile_choices
    current_profile = UpdateProfiles[await self.current_version_profile()]
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/update_/profile_.py", line 81, in current_version_profile
    trains = await self.middleware.call('update.get_trains')
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1043, in call
    return await self._call(
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 771, in _call
    return await methodobj(*prepared_call.args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/update_/trains.py", line 52, in get_trains
    trains = await self.fetch(f"{self.update_srv}/{UPDATE_TRAINS_FILE_NAME}")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/update_/trains.py", line 29, in fetch
    async with client.get(url) as resp:
  File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 1488, in __aenter__
    self._resp: _RetType = await self._coro
                           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 622, in _request
    with timer:
  File "/usr/lib/python3/dist-packages/aiohttp/helpers.py", line 685, in __exit__
    raise asyncio.TimeoutError from exc_val
TimeoutError

So I manually download and install from TrueNAS SCALE Direct Downloads. (Which has the advantage of being properly sorted, instead of the mess that JSTOR presents at download.truenas.com.)

We actually identified this in the last 24 hours, pushes today should fix the issue. Message me if you see it from tomorrow onwards.

1 Like

HoneyBadger has been replaced by AI :grimacing:

2 Likes

I thought that I sent you a message a couple of days ago but I can’t find it, so:

I had to manually download and update from 25.10.0-MASTER-20250815 to 25.10.0-MASTER-20250818 and then to 25.10.0-MASTER-20250819. The update to 25.10.0-MASTER-20250820 via the GUI worked as expected, but today the update to 25.10.0-MASTER-20250821 failed.

Hey, I used a regular hyphen, not an em-dash. :robot:

3 Likes

Thanks SO MUCH for providing a way to have an install “answer file”. Been using cloud-config to auto-install Ubuntu and love that it’s now available for TrueNAS!

At this moment the input for app’s can arrive via a chosen IP / (V)LAN, however all replays are via the one and only default gateway.

That is so … so wrong. It is asymmetric routing and insecure. Data arriving via (V)LAN-A should be answered via the vlan-A gateway and NOT via the default gateway!

I sincerely hope this issue will be fixed!

As log as it is not … apps area an absolute NO GO for me

1 Like

I’d suggest you start a new thread with your needs.

At it’s heart, all packets are routed based on IP… so static routes is the best solution. Static Routes Widget | TrueNAS Documentation Hub

25.10.BETA.1 has arrived.

Post any new comments on the new announcement thread.

1 Like