Architecture name inconsistency

This is with incus 7.0.1. I just noticed something odd: the image architecture name accepted by the filter is not the same as the name displayed in the “ARCHITECTURE” column.

$ incus image list images: freebsd release=15.1 arch=x86_64
+-------+-------------+--------+-------------+--------------+------+------+-------------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE | UPLOAD DATE |
+-------+-------------+--------+-------------+--------------+------+------+-------------+
$ incus image list images: freebsd release=15.1 arch=amd64
+---------------------------------+--------------+--------+-------------------------------------+--------------+-----------------+------------+----------------------+
|              ALIAS              | FINGERPRINT  | PUBLIC |             DESCRIPTION             | ARCHITECTURE |      TYPE       |    SIZE    |     UPLOAD DATE      |
+---------------------------------+--------------+--------+-------------------------------------+--------------+-----------------+------------+----------------------+
| freebsd/15.1 (7 more)           | 2db4c065faee | yes    | Freebsd 15.1 amd64 (20260819_21:33) | x86_64       | VIRTUAL-MACHINE | 2772.81MiB | 2026/08/19 00:00 UTC |
+---------------------------------+--------------+--------+-------------------------------------+--------------+-----------------+------------+----------------------+
| freebsd/15.1/cloud (3 more)     | 4fc812c607e5 | yes    | Freebsd 15.1 amd64 (20260819_21:33) | x86_64       | VIRTUAL-MACHINE | 2772.06MiB | 2026/08/19 00:00 UTC |
+---------------------------------+--------------+--------+-------------------------------------+--------------+-----------------+------------+----------------------+
| freebsd/15.1/cloud+ufs (1 more) | 5df505a7ef9f | yes    | Freebsd 15.1 amd64 (20260819_21:33) | x86_64       | VIRTUAL-MACHINE | 2547.69MiB | 2026/08/19 00:00 UTC |
+---------------------------------+--------------+--------+-------------------------------------+--------------+-----------------+------------+----------------------+
| freebsd/15.1/ufs (3 more)       | 37149b69215d | yes    | Freebsd 15.1 amd64 (20260820_10:54) | x86_64       | VIRTUAL-MACHINE | 2547.56MiB | 2026/08/20 00:00 UTC |
+---------------------------------+--------------+--------+-------------------------------------+--------------+-----------------+------------+----------------------+

(Incidentally, the same is true for the pair of aarch64/arm64)

The one accepted by the filter is the one which is in the image properties:

$ incus image info images:2db4c065faee | egrep "amd64|aarch64"
    architecture: amd64
    description: Freebsd 15.1 amd64 (20260819_21:33)
    - freebsd/15.1/default+zfs/amd64
    - freebsd/15.1/default/amd64
    - freebsd/15.1/zfs/amd64
    - freebsd/15.1/amd64
$

I wonder where the architecture listing column gets the value “x86_64” from, and why it’s different?


EDIT: Oops, I messed up the grep above. I meant to write:

% incus image info images:2db4c065faee | egrep "amd64|x86_64"
Architecture: x86_64
    description: Freebsd 15.1 amd64 (20260819_21:33)
    architecture: amd64
    - freebsd/15.1/default+zfs/amd64
    - freebsd/15.1/default/amd64
    - freebsd/15.1/zfs/amd64
    - freebsd/15.1/amd64

Run the incus info command on the image in question. It appears it comes from the Properties:architecture

$ incus image info images:37149b69215d
Fingerprint: 37149b69215d7bb290f9d4cb53c3a99853cf9d737b2e6c7b29f519f45685e824
Size: 2547.56MiB
Architecture: x86_64
Type: virtual-machine
Public: yes
Timestamps:
    Created: 2026/08/19 19:00 CDT
    Uploaded: 2026/08/19 19:00 CDT
    Expires: 1969/12/31 18:00 CST
    Last used: never
Properties:
    os: Freebsd
    requirements.secureboot: false
    variant: default+ufs
    release: 15.1
    architecture: amd64
    serial: 20260820_10:54
    description: Freebsd 15.1 amd64 (20260820_10:54)
    type: disk-kvm.img
Aliases:
    - freebsd/15.1/default+ufs
    - freebsd/15.1/default+ufs/amd64
    - freebsd/15.1/ufs
    - freebsd/15.1/ufs/amd64
Cached: no
Auto update: disabled
Profiles: []

Also see --help. It appears filters are based on properties.

$ incus image list --help

Description:
List images

Filters may be of the = form for property based filtering,
or part of the image hash or part of the image alias name.

Doesn’t mean we shouldn’t fix the inconsistency :wink:

It’s basically a case of the image’s self-reported architecture (typically the name used by that specific OS/distribution for the architecture) vs the name of the architecture that Incus uses (which is based on the kernel architecture name).

The filtering logic appears to work exclusively off of the key/value properties provided by the image rather than the image definition itself. We should be able to tweak that to consider both, would be slightly hackish by probably worth it.

Saved in Architecture name consistency · Issue #3881 · lxc/incus · GitHub as feature request.