Confusion regarding snapper and snapshots

Here is some information which I think will be useful. Although I am not certain about its relevancy.

user@localhost ~ → sudo bootctl list
[sudo] password for root: 
         type: Boot Loader Specification Type #1 (.conf)
        title: openSUSE Tumbleweed 20260917 (default) (selected)
           id: opensuse-tumbleweed-7.2.6-1-default-386.conf
       source: /boot/efi//loader/entries/opensuse-tumbleweed-7.2.6-1-default-386.conf (on the EFI System Partition)
     sort-key: opensuse-tumbleweed
      version: 386@7.2.6-1-default
        linux: /boot/efi//opensuse-tumbleweed/7.2.6-1-default/linux-15ce62d5381d89cb622426c2ec137fdb56057986
       initrd: /boot/efi//opensuse-tumbleweed/7.2.6-1-default/initrd-a2554e747d2254b640f4d3142f95c6157fbcf9a5
      options: root=UUID=ced76553-425e-485c-ba40-c63d0cccffe1 splash=silent quiet ideapad_laptop.allow_v4_dytc=Y amd_pstate=active security=selinux selinux=1 mitigati>

         type: Boot Loader Specification Type #1 (.conf)
        title: Snapper: openSUSE Tumbleweed 20260919 (399,7.2.6-1-default,2026-09-21 14:36:05, post, zypp(zypper))
           id: opensuse-tumbleweed-7.2.6-1-default-399.conf
       source: /boot/efi//loader/entries/opensuse-tumbleweed-7.2.6-1-default-399.conf (on the EFI System Partition)
     sort-key: snapper-opensuse-tumbleweed
      version: 399@7.2.6-1-default
        linux: /boot/efi//opensuse-tumbleweed/7.2.6-1-default/linux-15ce62d5381d89cb622426c2ec137fdb56057986
       initrd: /boot/efi//opensuse-tumbleweed/7.2.6-1-default/initrd-a2554e747d2254b640f4d3142f95c6157fbcf9a5
      options: root=UUID=ced76553-425e-485c-ba40-c63d0cccffe1 splash=silent quiet ideapad_laptop.allow_v4_dytc=Y amd_pstate=active security=selinux selinux=1 mitigati>

         type: Boot Loader Specification Type #1 (.conf)
        title: Snapper: openSUSE Tumbleweed 20260919 (399,7.2.5-1-default,2026-09-21 14:36:05, post, zypp(zypper))
           id: opensuse-tumbleweed-7.2.5-1-default-399.conf
       source: /boot/efi//loader/entries/opensuse-tumbleweed-7.2.5-1-default-399.conf (on the EFI System Partition)
     sort-key: snapper-opensuse-tumbleweed
      version: 399@7.2.5-1-default
        linux: /boot/efi//opensuse-tumbleweed/7.2.5-1-default/linux-caec3589041dab18da2cba0c3b3087dd02593439
       initrd: /boot/efi//opensuse-tumbleweed/7.2.5-1-default/initrd-7315a0f7c30531dd57d46739e9eb9b5dba64915d
      options: root=UUID=ced76553-425e-485c-ba40-c63d0cccffe1 splash=silent quiet ideapad_laptop.allow_v4_dytc=Y amd_pstate=active security=selinux selinux=1 mitigati>

         type: Boot Loader Specification Type #1 (.conf)
        title: Snapper: openSUSE Tumbleweed 20260918 (398,7.2.6-1-default,2026-09-21 14:35:29, pre, zypp(zypper))
           id: opensuse-tumbleweed-7.2.6-1-default-398.conf
       source: /boot/efi//loader/entries/opensuse-tumbleweed-7.2.6-1-default-398.conf (on the EFI System Partition)
     sort-key: snapper-opensuse-tumbleweed
      version: 398@7.2.6-1-default
        linux: /boot/efi//opensuse-tumbleweed/7.2.6-1-default/linux-15ce62d5381d89cb622426c2ec137fdb56057986
       initrd: /boot/efi//opensuse-tumbleweed/7.2.6-1-default/initrd-a2554e747d2254b640f4d3142f95c6157fbcf9a5
      options: root=UUID=ced76553-425e-485c-ba40-c63d0cccffe1 splash=silent quiet ideapad_laptop.allow_v4_dytc=Y amd_pstate=active security=selinux selinux=1 mitigati>

         type: Automatic
        title: Windows Boot Manager
           id: auto-windows
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f (on the EFI System Partition)

         type: Automatic
        title: EFI Default Loader
           id: auto-efi-default
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f (on the EFI System Partition)

         type: Automatic
        title: Reboot Into Firmware Interface
           id: auto-reboot-to-firmware-setup
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f (on the EFI System Partition)

user@localhost ~ → cat /etc/os-release
NAME="openSUSE Tumbleweed"
# VERSION="20260919"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20260919"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20260919:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20260919"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"

user@localhost ~ → uname -a
Linux localhost.localdomain 7.2.6-1-default #1 SMP PREEMPT_DYNAMIC Tue Sep 15 06:50:07 UTC 2026 (3d19f11) x86_64 x86_64 x86_64 GNU/Linux
user@localhost ~ → sudo snapper list
   # │ Type   │ Pre # │ Date                            │ User │ Used Space │ Cleanup │ Description                             │ Userdata
─────┼────────┼───────┼─────────────────────────────────┼──────┼────────────┼─────────┼─────────────────────────────────────────┼──────────────
  0  │ single │       │                                 │ root │            │         │ current                                 │
 59  │ pre    │       │ Thu 13 Aug 2026 11:45:24 PM IST │ root │ 247.96 MiB │         │ before applying changes                 │
 94  │ pre    │       │ Sat 15 Aug 2026 01:14:51 AM IST │ root │ 185.39 MiB │         │ before applying changes                 │
138  │ pre    │       │ Sun 16 Aug 2026 02:31:36 PM IST │ root │  22.20 MiB │         │ Before BIOS/UEFI update                 │
139  │ pre    │       │ Sun 16 Aug 2026 08:43:09 PM IST │ root │  22.52 MiB │         │ power profiles GUI issue resolved state │
168  │ pre    │       │ Tue 18 Aug 2026 01:14:21 PM IST │ root │ 277.63 MiB │         │ Before Windows update 8-18-26           │
208  │ pre    │       │ Thu 20 Aug 2026 04:40:13 PM IST │ root │ 206.49 MiB │         │ Before running the new custom command   │
225  │ pre    │       │ Fri 21 Aug 2026 05:23:27 PM IST │ root │ 218.79 MiB │         │ After finishing basic customization     │
301  │ pre    │       │ Tue 01 Sep 2026 12:30:41 PM IST │ root │   1.83 GiB │         │ Before Windows update                   │
316  │ pre    │       │ Sun 06 Sep 2026 05:17:25 PM IST │ root │   1.08 GiB │         │ before checking for win updates sept 6  │
358  │ pre    │       │ Wed 16 Sep 2026 01:05:14 AM IST │ root │  16.69 MiB │         │ pre-MajorPackageModification            │
367  │ pre    │       │ Wed 16 Sep 2026 01:40:46 AM IST │ root │   3.54 MiB │ number  │ zypp(zypper)                            │ important=yes
368  │ post   │   367 │ Wed 16 Sep 2026 01:42:51 AM IST │ root │  48.89 MiB │ number  │                                         │ important=yes
369  │ pre    │       │ Wed 16 Sep 2026 01:46:41 AM IST │ root │ 432.00 KiB │ number  │ zypp(zypper)                            │ important=yes
370  │ post   │   369 │ Wed 16 Sep 2026 01:47:11 AM IST │ root │  22.12 MiB │ number  │                                         │ important=yes
377  │ pre    │       │ Thu 17 Sep 2026 04:51:33 PM IST │ root │  84.07 MiB │ number  │ zypp(zypper)                            │ important=yes
378  │ post   │   377 │ Thu 17 Sep 2026 04:52:36 PM IST │ root │ 114.97 MiB │ number  │                                         │ important=yes
385  │ single │       │ Sun 20 Sep 2026 01:24:48 AM IST │ root │  24.96 MiB │ number  │ rollback backup of #366                 │ important=yes
386* │ single │       │ Sun 20 Sep 2026 01:25:07 AM IST │ root │ 168.76 MiB │         │ writable copy of #384                   │
387  │ pre    │       │ Sun 20 Sep 2026 01:34:32 AM IST │ root │   6.38 MiB │ number  │ zypp(zypper)                            │ important=yes
388  │ post   │   387 │ Sun 20 Sep 2026 01:35:55 AM IST │ root │  50.74 MiB │ number  │                                         │ important=yes
389  │ pre    │       │ Sun 20 Sep 2026 01:36:53 AM IST │ root │   3.66 MiB │ number  │ zypp(zypper)                            │ important=yes
390  │ pre    │       │ Sun 20 Sep 2026 09:46:22 PM IST │ root │   1.46 MiB │ number  │ zypp(zypper)                            │ important=no
391  │ post   │   390 │ Sun 20 Sep 2026 09:46:46 PM IST │ root │   2.18 MiB │ number  │                                         │ important=no
392  │ pre    │       │ Sun 20 Sep 2026 10:03:08 PM IST │ root │ 308.00 KiB │ number  │ zypp(zypper)                            │ important=no
393  │ post   │   392 │ Sun 20 Sep 2026 10:03:28 PM IST │ root │   1.93 MiB │ number  │                                         │ important=no
394  │ pre    │       │ Mon 21 Sep 2026 01:47:29 AM IST │ root │   6.33 MiB │ number  │ zypp(zypper)                            │ important=no
395  │ post   │   394 │ Mon 21 Sep 2026 01:48:10 AM IST │ root │  66.48 MiB │ number  │                                         │ important=no
396  │ pre    │       │ Mon 21 Sep 2026 01:49:16 AM IST │ root │ 448.00 KiB │ number  │ zypp(zypper)                            │ important=no
397  │ post   │   396 │ Mon 21 Sep 2026 01:49:36 AM IST │ root │ 712.00 KiB │ number  │                                         │ important=no
398  │ pre    │       │ Mon 21 Sep 2026 02:35:29 PM IST │ root │   1.96 MiB │ number  │ zypp(zypper)                            │ important=no
399  │ post   │   398 │ Mon 21 Sep 2026 02:36:05 PM IST │ root │  25.08 MiB │ number  │                                         │ important=no

My confusion started when I saw that the snapshot ID mentioned in the title of the default bootloader entry in the boot screen was lagging behind the latest installed TW snapshot via zypper. I had to do a rollback a few weeks ago, and only recently noticed that the snapshot which was active for me, past that, multiple snapshots had been automatically created. I thought, let’s roll “back” to a newer snapshot. I ran the latest snapshot, tested that it was working fine for a day, and rolled back to it a couple days ago (I think). I’ve run a few dist-updates, till now. And the curent snapper list(as seen above) has much similarity to whatever was before - active snapshot is 386 (further behind) and latest snapshot is 399 (further ahead). (I did rollbacks using sudo snapper rollback #abc in a default shell, if that matters)

The actual active snapshot version and kernel version appears to be what’s latest.

I tried reading this ArchWiki page, but didn’t leave the page with much.

I want to know, if I need to keep rolling back to newer snapshot IDs via snapper? Is this completely normal behavior? Other than that, is there anything I need to do?

I apologize if this is a very basic, surface level thing to know already. But I figured it’s better to not make guesses myself while I am below half-knowledged about these things.

No.

Yes

Define cleanup algorithm (e.g. number) when creating snapshots manually. Otherwise you have to cleanup yourself or you will pollute your system.

Every zypper execution will create a pair of pre- and post-snapshots. But your current snapshot number # will stay the same until you rollback.