25.04.2 Oh No my VM's not working :(

Oh No … still not working …

After update all my VM’s were still gone !
See screenshot

Note that I did wrongly post this before in a other 25.04.2 topic

I did switch back to 24.10.2.2 intermediately

If these were created using the 25.04 Instances feature they will appear on the Containers screen, as described in the release notes

They where not! It are VM’s created in older TrueNas version. the latest created one’s in 24.10.2

After switching to 25.04 month ago my VM’s did disappear as well and also then I switched back intermediately :frowning:

Understood. Looking at it again, the error message “Can not retrieve a response” is different from it saying no VMs exist. We might need a bug ticket for this, but that would require a debug file from the system in the error state.

I can switch to 25.0.4 for a short moment and generating the log you need, if you can tell me how to create that log

1 Like

I have the same issue !

It’s a standard ask, but can you confirm you have cleared UI cache’s this is a standard need on upgrade. This upgrade path with VMs was tested in house, so we will need those bug reports to look at the configuration. Very much appreciate those details on bug reports!

1 Like

For info, I do not understand the ‘cleared UI cache issue’, but never the less I did the following test:

  • reboot windows
  • use chrome in state firefox

As expected that did not solve the problem!

Please use the UI feedback button at the top of the TrueNAS to file a bug, ensure debug is selected so this is included, I just had several upgrades done to check and we are not seeing an issue so we need this data to investigate.

I did create a ticket (NAS-136940) and I did create a debug file.

However I have no idea how to attache the (private debug file) to the ticket

After some delay I got a second screen, i hope it is really private and uploaded the debug file

I just created a debug file and used jira as described. Did not use the Gui at all

I am in the same boat and ended up with the error Can not retrieve response in the Virtual Machines section. I did delete site data/cookies and refreshed the Web UI without cache (Ctrl+F5). It did not help.

Currently, I have only one VM with Windows Server guest OS that uses a block volume as disk.

How I got into this situation:

  1. Last week, I decided to update from 24.10 to 25.04.1. I did read the release notes, specifically the section how to migrate VMs manually. I recorded all the necessary VM configuration.
  2. Successfully updated to 25.04.1 and verified, that the base NAS is working properly (ZFS storage, SMB shares).
  3. Added the VM block volume into Incus Volumes configuration screen.
  4. Tried to recreate the VM in Incus but it was a mess that didn’t lead to anywhere. After several attempts and then-fresh information that this will be fixed in 25.04.2, I decided to wait. I did delete the VM from the Incus configuration screen – thinking I will recreate it again the the new Virtual Machines section.
  5. Eagerly updated to 25.04.2 today. Virtual Machines section displays the above error. Okay, no big deal, I will recreate the VM. When creating a VM with the same name, I get error The name "XYZ" is already in use. It seems, the configuration is still stored somewhere. I know I can create a VM with a different name, but that is not what I want. I want to fix this properly, not using a workaround.

I would like to know the following:

  • What to check/reset/delete/change so that I can recreate the VM using the old name. Or how to import it back, if the configuration is still present. Manual work/testing in Shell is OK. I definitely do not want to wait until the next half-assed release.
  • The Volume configuration dialog in Containers/Incus still lists the block volume of the VM. When try to remove it from there, it asks me if I want to delete the volume, which I don’t. I am not sure if it would delete the volume from the configuration screen or from the disk. Might need clarification on that screen.

I see that a Jira ticket has already been created, but somehow I cannot login to Atlassian. I created an account just fine, but when trying to log in, the screen just refreshes without me logging in. I tried two different computers, two different browsers, normal and incognito mode (without any plugins). When I successfully log in, I will provide the debug logs in the Private storage.

Meanwhile, these are of interest (to me) in the logs:

\ixdiagnose\plugins\vm\report.json
{
    "iommu_groups": {
        "execution_time": 0.00478816032409668,
        "metric_report": [
            {
                "error": "Failed to list contents of '/sys/kernel/iommu_groups': [EFAULT] /sys/kernel/iommu_groups: ZFS attributes are not supported."
            }
        ],
        "metric_execution_error": null,
        "metric_execution_traceback": null
    },
    "gpu": {
        "execution_time": 0.06535506248474121,
        "metric_report": [
            {
                "endpoint": "device.get_gpus",
                "error": null,
                "execution_time": 0.06277656555175781,
                "description": null
            }
        ],
        "metric_execution_error": null,
        "metric_execution_traceback": null
    },
    "vms": {
        "execution_time": 0.010300159454345703,
        "metric_report": [
            {
                "endpoint": "vm.query",
                "error": "3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
                "execution_time": 0.007467746734619141,
                "description": null
            }
        ],
        "metric_execution_error": null,
        "metric_execution_traceback": null
    },
    "vm_devices": {
        "execution_time": 0.00718235969543457,
        "metric_report": [
            {
                "endpoint": "vm.device.query",
                "error": "3 validation errors for VMDeviceQueryResult\nresult.list[VMDeviceQueryResultItem].2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMDeviceQueryResultItem\n  Input should be a valid dictionary or instance of VMDeviceQueryResultItem [type=model_type, input_value=[{'id': 18, 'attributes':...'order': 1000, 'vm': 2}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 18, 'attributes':...'order': 1000, 'vm': 2}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
                "execution_time": 0.0047643184661865234,
                "description": null
            }
        ],
        "metric_execution_error": null,
        "metric_execution_traceback": null
    },
    "passthrough_choices": {
        "execution_time": 0.1745004653930664,
        "metric_report": {
            "error": null
        },
        "metric_execution_error": null,
        "metric_execution_traceback": null
    }
}
\ixdiagnose\plugins\logged_exceptions\log_file_exceptions.json (EVA03 is the VM in question)
{
    "/var/log/middlewared.log": [
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/job.py\", line 515, in run\n    await self.future\n  File \"/usr/lib/python3/dist-packages/middlewared/job.py\", line 560, in __run_body\n    rv = await self.method(*args)\n         ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/service/crud_service.py\", line 287, in nf\n    rv = await func(*args, **kwargs)\n         ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/decorator.py\", line 93, in wrapped\n    result = await func(*args)\n             ^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/plugins/virt/instance.py\", line 526, in do_update\n    verrors.check()\n  File \"/usr/lib/python3/dist-packages/middlewared/service_exception.py\", line 72, in check\n    raise self\nmiddlewared.service_exception.ValidationErrors: [EINVAL] virt_instance_update.root_disk_io_bus: VM should be stopped before updating the root disk config\n",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-22 02:22:58.159215"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/job.py\", line 515, in run\n    await self.future\n  File \"/usr/lib/python3/dist-packages/middlewared/job.py\", line 560, in __run_body\n    rv = await self.method(*args)\n         ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/decorator.py\", line 93, in wrapped\n    result = await func(*args)\n             ^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/plugins/virt/instance.py\", line 664, in restart\n    raise ValidationError(\nmiddlewared.service_exception.ValidationError: [EINVAL] virt.instance.restart.EVA-03: EVA-03: instance may not be restarted because current status is: ERROR",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-22 02:25:01.325821"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 18:25:20.301740"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 18:28:38.355332"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 18:28:43.144265"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 18:32:42.503428"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 18:34:29.999459"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 19:05:46.615204"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 19:05:48.854382"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 19:24:45.586226"
        },
        {
            "exception": "Traceback (most recent call last):\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py\", line 323, in process_method_call\n    result = await method.call(app, params)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 61, in call\n    return await self._dump_result(app, methodobj, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py\", line 64, in _dump_result\n    return self.middleware.dump_result(self.serviceobj, methodobj, app, result)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/main.py\", line 819, in dump_result\n    return serialize_result(new_style_returns_model, result, expose_secrets)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/middlewared/api/base/handler/result.py\", line 13, in serialize_result\n    return model(result=result).model_dump(\n           ^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3/dist-packages/pydantic/main.py\", line 212, in __init__\n    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npydantic_core._pydantic_core.ValidationError: 3 validation errors for VMQueryResult\nresult.list[VMQueryResultItem].0.devices.2.attributes.DISPLAY.password\n  String should have at least 1 character [type=string_too_short, input_value='', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.9/v/string_too_short\nresult.VMQueryResultItem\n  Input should be a valid dictionary or instance of VMQueryResultItem [type=model_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/model_type\nresult.int\n  Input should be a valid integer [type=int_type, input_value=[{'id': 2, 'name': 'EVA03...ain_state': 'SHUTOFF'}}], input_type=list]\n    For further information visit https://errors.pydantic.dev/2.9/v/int_type",
            "type": "PYTHON_EXCEPTION",
            "time": "2025-07-31 19:24:47.414069"
        }
    ],
    "/var/log/failover.log": []
}

I have the same “Could not retrieve response” in the VM gui after upgrading from 24.10.2.2 but the VMs are running.

2 Likes

Same problem here. but the machines are running, just the gui won’t show them.

I have exactly the same.

details are included in this morning release notes post. Thank you for the reports!

I have finally fixed my VMs and want to share a possible solution for others in my situation. The problem in my case was that I was unable to roll back to a previous version (24.10) because I had already upgraded the ZFS flags in 25.04. I didn’t want to just boot into 24.10 and see if I can change the VM settings, even if the ZFS pool would not be working properly.

So, this is for anyone on 25.04.2, still with the Can not retrieve response error in the Virtual Machines section, who cannot roll back for any reason (upgraded ZFS flags, deleted old boot environment, etc.).

Because this is a configuration error that stems from incorrectly configured Display/VNC device in a virtual machine, I had an idea to change it in exported configuration file, import it back and it worked.

  1. Export current configuration file (System > General Settings > Manage Configuration button > Download File). Make sure Export Password Secret Seed is checked/enabled. This will give you a TAR archive such as nas-25.04.2-20250801202056.tar.
  2. Extract the archive to a folder of your choice. You get two files: freenas-v1.db and pwenc_secret.
  3. The configuration file freenas-v1.db is a SQLite format file. Download any SQLite editor and open it. I used DB Browser for SQLite (homepage, GitHub) which is a free, open-source, portable application. Next steps will list actions related to this application, but you can just use the general information.
  4. In the application, switch to the Browse Data tab, and as a Table choose vm_vm. This table should list your VMs that TrueNAS is aware of, but cannot display properly. Your “misconfigured” VM causing the issue must be listed here. Note its id in the first column.
  5. Now the fun part. Switch to Table vm_device which lists all devices attached to VMs. Devices connected to the VM in question have the same id number in the vm_id column. You need to identify the Display device (that handles VNC). Which one is it? You can identify it based on the order column, if you remember which number it had (or if you saved/noted the previous configuration somewhere).
  6. When you identify the correct row, right-click on the number to the left of the very first column (do not just select a single cell), and choose Delete Record. The whole row should disappear completely. Do not change any numbers, like trying to fix the id number sequence. TrueNAS keeps record of last used sequence numbers in Table sqlite_sequence.
  7. Save changes (Write Changes button) and close the application. Now, you should end up with the modified freenas-v1.db file and original pwenc_secret file.
  8. Add these files to a new TAR archive. I used free, command-line version of 7-zip (homepage, the Extra version). To add these files to a TAR archive, use command:
    7za.exe a nas-modified-config.tar freenas-v1.db pwenc_secret
    This will produce the nas-modified-config.tar archive. Obviously, you can use any name.
  9. Back in TrueNAS Web UI, import this modified configuration file (System > General Settings > Manage Configuration button > Upload File) and let the server reboot.
  10. When all this is finished, you should see all VMs in the Virtual Machines list.

Do not forget to add the Display device back to the VM in question and also to verify that the disk storage it uses is still accessible. I use block volume as a storage device, that was moved:

  • Original path: WorkPool/VM_XYZ_disk
  • After Incus magic: WorkPool/.ix-virt/custom/default_VM_XYZ_disk

In that case, reconfigure the VM or snapshot and clone it to new location:

zfs snapshot WorkPool/.ix-virt/custom/default_VM_XYZ_disk@clone
zfs send WorkPool/.ix-virt/custom/default_VM_XYZ_disk@clone | zfs receive WorkPool/VM_XYZ_disk
zfs destroy WorkPool/.ix-virt/custom/default_VM_XYZ_disk@clone
zfs destroy WorkPool/.ix-virt/custom/default_VM_XYZ_disk

It goes without saying that this is highly unofficial and unsupported operation, but it definitely beats reinstalling and rebuilding TrueNAS only because a stupid and unecessary configuration parameter is missing. It worked for me, YMMV. Hopefully, it helps someone.

2 Likes

This is amazing. Thank you for sharing. I don’t have a need but this is yet another amazing resource in the making as people try to deal with the recent backend changes. Thank you again!