I tried to manually delete each snapshot in Timeshift. It said “deleted with errors” and still listed the snapshots.
When opening the folder, I noticed it only contained an info.json file, so I deleted each snapshot folder that only contained that file. Reopening Timeshift showed an empty list.
Next I create a snapshot via Timeshift, delete it again, again shows “deleted with errors”.
This is what happens when I use Timeshift to create a snapshot (gui log):
[12:19:51] check_btrfs_layout_system()
[12:19:51] SnapshotRepo: available()
[12:19:51] SnapshotRepo: has_btrfs_system()
[12:19:51] root_path=/run/timeshift/backup/@
[12:19:51] btrfs_mode=true
[12:19:51] is_available: ok
[12:19:51] SnapshotRepo: has_space()
[12:19:51] Device: get_disk_space_using_df(): 1
[12:19:51] no snapshots
[12:19:51] BackupWindow: BackupWindow()
[12:19:51] EstimateBox: EstimateBox()
[12:19:51] EstimateBox: EstimateBox(): exit
[12:19:51] BackupDeviceBox: BackupDeviceBox()
[12:19:51] BackupDeviceBox: BackupDeviceBox(): exit
[12:19:51] BackupBox: BackupBox()
[12:19:51] BackupBox: BackupBox(): exit
[12:19:51] BackupFinishBox: BackupFinishBox()
[12:19:51] BackupFinishBox: BackupFinishBox(): exit
[12:19:51] BackupWindow: BackupWindow(): exit
[12:19:51]
[12:19:51] page: 2
[12:19:51] Main: create_snapshot()
[12:19:51] check_btrfs_layout_system()
[12:19:51] SnapshotRepo: has_space()
[12:19:51] Device: get_disk_space_using_df(): 1
[12:19:51] no snapshots
[12:19:51] Main: backup_and_rotate()
[12:19:51] SnapshotRepo: available()
[12:19:51] SnapshotRepo: has_btrfs_system()
[12:19:51] root_path=/run/timeshift/backup/@
[12:19:51] btrfs_mode=true
[12:19:51] is_available: ok
[12:19:51] SnapshotRepo: has_space()
[12:19:51] Device: get_disk_space_using_df(): 1
[12:19:51] no snapshots
[12:19:51] Creating new backup...(BTRFS)
[12:19:51] Saving to device: /dev/nvme0n1p2, mounted at path: /run/timeshift/backup
[12:19:51] Created directory: /run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51
[12:19:51] Created subvolume snapshot: /run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51/@
[12:19:51] Created subvolume snapshot: /run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51/@home
[12:19:51] Created control file: /run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51/info.json
[12:19:51] BTRFS Snapshot saved successfully (0s)
[12:19:51] Tagged snapshot '2022-05-09_12-19-51': ondemand
[12:19:51] ------------------------------------------------------------------------------
[12:19:51] SnapshotRepo: load_snapshots()
[12:19:51] Querying subvolume info...
[12:19:51] query_subvolume_id():@
[12:19:51] btrfs subvolume list '/run/timeshift/backup'
[12:19:51] query_subvolume_quota():@
[12:19:51] btrfs qgroup show '/run/timeshift/backup'
[12:19:51] E: ERROR: can't list qgroups: quotas not enabled
[12:19:51] E: btrfs returned an error: 256
[12:19:51] E: Failed to query subvolume quota
[12:19:51] Query completed
[12:19:51] loading snapshots from '/run/timeshift/backup/timeshift-btrfs/snapshots': 1 found
[12:19:51] Symlinks updated
[12:19:52]
[12:19:52] page: 3
[12:19:53] SnapshotRepo: available()
[12:19:53] SnapshotRepo: has_btrfs_system()
[12:19:53] root_path=/run/timeshift/backup/@
[12:19:53] btrfs_mode=true
[12:19:53] is_available: ok
[12:19:53] SnapshotRepo: load_snapshots()
[12:19:53] Querying subvolume info...
[12:19:53] query_subvolume_id():@
[12:19:53] btrfs subvolume list '/run/timeshift/backup'
[12:19:53] query_subvolume_quota():@
[12:19:53] btrfs qgroup show '/run/timeshift/backup'
[12:19:53] E: ERROR: can't list qgroups: quotas not enabled
[12:19:53] E: btrfs returned an error: 256
[12:19:53] E: Failed to query subvolume quota
[12:19:53] Query completed
[12:19:53] loading snapshots from '/run/timeshift/backup/timeshift-btrfs/snapshots': 1 found
[12:19:53] SnapshotRepo: check_status()
[12:19:53] SnapshotRepo: available()
[12:19:53] SnapshotRepo: has_btrfs_system()
[12:19:53] root_path=/run/timeshift/backup/@
[12:19:53] btrfs_mode=true
[12:19:53] is_available: ok
[12:19:53] SnapshotRepo: has_snapshots()
[12:19:53] SnapshotRepo: has_space()
[12:19:53] Device: get_disk_space_using_df(): 1
[12:19:53] Snapshot device: '/dev/nvme0n1p2'
[12:19:53] Snapshot location: /run/timeshift/backup
[12:19:53] OK
[12:19:53] 1 snapshots, 476,2 GB free
[12:19:53] Status: HAS_SNAPSHOTS_HAS_SPACE
[12:19:53]
[12:19:53] SnapshotRepo: check_status(): exit
[12:19:53] SnapshotRepo: has_snapshots()
[12:19:53] SnapshotRepo: has_snapshots()
It still shows quota error.
When I delete that snapshot (I have to delete it 3 times, to make it disappear from the list in Timeshift, perhaps first time it deletes @, second time @home, third time the folder and its json file?)
[12:21:38] main window: delete_selected()
[12:21:38] SnapshotRepo: available()
[12:21:38] SnapshotRepo: has_btrfs_system()
[12:21:38] root_path=/run/timeshift/backup/@
[12:21:38] btrfs_mode=true
[12:21:38] is_available: ok
[12:21:38] SnapshotRepo: has_snapshots()
[12:21:38] main window: delete_selected(): count=1
[12:21:38] DeleteWindow: DeleteWindow()
[12:21:38] SnapshotListBox: SnapshotListBox()
[12:21:38] SnapshotListBox: SnapshotListBox(): exit
[12:21:38] DeleteBox: DeleteBox()
[12:21:38] DeleteBox: DeleteBox(): exit
[12:21:38] DeleteFinishBox: DeleteFinishBox()
[12:21:38] DeleteFinishBox: DeleteFinishBox(): exit
[12:21:38] DeleteWindow: DeleteWindow(): exit
[12:21:38]
[12:21:38] page: 1
[12:21:38] DeleteBox: delete_snapshots()
[12:21:38] Main: delete_begin()
[12:21:38] delete_begin(): thread created
[12:21:38] Main: delete_begin(): exit
[12:21:38] delete_thread()
[12:21:38] ------------------------------------------------------------------------------
[12:21:38] Removing snapshot: 2022-05-09_12-19-51
[12:21:38] Deleting subvolume: @home (Id:1183)
[12:21:38] btrfs subvolume delete '/run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51/@home'
[12:21:38] Deleted subvolume: @home (Id:1183)
[12:21:38] Destroying qgroup: 0/1183
[12:21:38] btrfs qgroup destroy 0/1183 '/run/timeshift/backup'
[12:21:38] E: Failed to destroy qgroup: '0/1183'
[12:21:38] E: Failed to remove snapshot: 2022-05-09_12-19-51
[12:21:38] ------------------------------------------------------------------------------
[12:21:38]
[12:21:38] page: 2
[12:21:39] SnapshotRepo: available()
[12:21:39] SnapshotRepo: has_btrfs_system()
[12:21:39] root_path=/run/timeshift/backup/@
[12:21:39] btrfs_mode=true
[12:21:39] is_available: ok
[12:21:39] SnapshotRepo: load_snapshots()
[12:21:39] Querying subvolume info...
[12:21:39] query_subvolume_id():@
[12:21:39] btrfs subvolume list '/run/timeshift/backup'
[12:21:39] query_subvolume_quota():@
[12:21:39] btrfs qgroup show '/run/timeshift/backup'
[12:21:39] E: ERROR: can't list qgroups: quotas not enabled
[12:21:39] E: btrfs returned an error: 256
[12:21:39] E: Failed to query subvolume quota
[12:21:40] Query completed
[12:21:40] loading snapshots from '/run/timeshift/backup/timeshift-btrfs/snapshots': 1 found
[12:21:40] SnapshotRepo: check_status()
[12:21:40] SnapshotRepo: available()
[12:21:40] SnapshotRepo: has_btrfs_system()
[12:21:40] root_path=/run/timeshift/backup/@
[12:21:40] btrfs_mode=true
[12:21:40] is_available: ok
[12:21:40] SnapshotRepo: has_snapshots()
[12:21:40] SnapshotRepo: has_space()
[12:21:40] Device: get_disk_space_using_df(): 1
[12:21:40] Snapshot device: '/dev/nvme0n1p2'
[12:21:40] Snapshot location: /run/timeshift/backup
[12:21:40] OK
[12:21:40] 1 snapshots, 476,2 GB free
[12:21:40] Status: HAS_SNAPSHOTS_HAS_SPACE
[12:21:40]
[12:21:40] SnapshotRepo: check_status(): exit
[12:21:40] SnapshotRepo: has_snapshots()
[12:21:40] SnapshotRepo: has_snapshots()
[12:21:43] main window: delete_selected()
[12:21:43] SnapshotRepo: available()
[12:21:43] SnapshotRepo: has_btrfs_system()
[12:21:43] root_path=/run/timeshift/backup/@
[12:21:43] btrfs_mode=true
[12:21:43] is_available: ok
[12:21:43] SnapshotRepo: has_snapshots()
[12:21:43] main window: delete_selected(): count=1
[12:21:43] DeleteWindow: DeleteWindow()
[12:21:43] SnapshotListBox: SnapshotListBox()
[12:21:43] SnapshotListBox: SnapshotListBox(): exit
[12:21:43] DeleteBox: DeleteBox()
[12:21:43] DeleteBox: DeleteBox(): exit
[12:21:43] DeleteFinishBox: DeleteFinishBox()
[12:21:43] DeleteFinishBox: DeleteFinishBox(): exit
[12:21:43] DeleteWindow: DeleteWindow(): exit
[12:21:43]
[12:21:43] page: 1
[12:21:43] DeleteBox: delete_snapshots()
[12:21:43] Main: delete_begin()
[12:21:43] delete_begin(): thread created
[12:21:43] Main: delete_begin(): exit
[12:21:43] delete_thread()
[12:21:43] ------------------------------------------------------------------------------
[12:21:43] Removing snapshot: 2022-05-09_12-19-51
[12:21:43] Deleting subvolume: @ (Id:1182)
[12:21:43] btrfs subvolume delete '/run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51/@'
[12:21:43] Deleted subvolume: @ (Id:1182)
[12:21:43] Destroying qgroup: 0/1182
[12:21:43] btrfs qgroup destroy 0/1182 '/run/timeshift/backup'
[12:21:43] E: Failed to destroy qgroup: '0/1182'
[12:21:43] E: Failed to remove snapshot: 2022-05-09_12-19-51
[12:21:43] ------------------------------------------------------------------------------
[12:21:43]
[12:21:43] page: 2
[12:21:44] SnapshotRepo: available()
[12:21:44] SnapshotRepo: has_btrfs_system()
[12:21:44] root_path=/run/timeshift/backup/@
[12:21:44] btrfs_mode=true
[12:21:44] is_available: ok
[12:21:44] SnapshotRepo: load_snapshots()
[12:21:44] Querying subvolume info...
[12:21:44] query_subvolume_id():@
[12:21:44] btrfs subvolume list '/run/timeshift/backup'
[12:21:44] query_subvolume_quota():@
[12:21:44] btrfs qgroup show '/run/timeshift/backup'
[12:21:44] E: ERROR: can't list qgroups: quotas not enabled
[12:21:44] E: btrfs returned an error: 256
[12:21:44] E: Failed to query subvolume quota
[12:21:44] Query completed
[12:21:44] loading snapshots from '/run/timeshift/backup/timeshift-btrfs/snapshots': 1 found
[12:21:44] SnapshotRepo: check_status()
[12:21:44] SnapshotRepo: available()
[12:21:44] SnapshotRepo: has_btrfs_system()
[12:21:44] root_path=/run/timeshift/backup/@
[12:21:44] btrfs_mode=true
[12:21:44] is_available: ok
[12:21:44] SnapshotRepo: has_snapshots()
[12:21:44] SnapshotRepo: has_space()
[12:21:44] Device: get_disk_space_using_df(): 1
[12:21:44] Snapshot device: '/dev/nvme0n1p2'
[12:21:44] Snapshot location: /run/timeshift/backup
[12:21:44] OK
[12:21:44] 1 snapshots, 476,2 GB free
[12:21:44] Status: HAS_SNAPSHOTS_HAS_SPACE
[12:21:44]
[12:21:44] SnapshotRepo: check_status(): exit
[12:21:44] SnapshotRepo: has_snapshots()
[12:21:44] SnapshotRepo: has_snapshots()
[12:21:46] main window: delete_selected()
[12:21:46] SnapshotRepo: available()
[12:21:46] SnapshotRepo: has_btrfs_system()
[12:21:46] root_path=/run/timeshift/backup/@
[12:21:46] btrfs_mode=true
[12:21:46] is_available: ok
[12:21:46] SnapshotRepo: has_snapshots()
[12:21:46] main window: delete_selected(): count=1
[12:21:46] DeleteWindow: DeleteWindow()
[12:21:46] SnapshotListBox: SnapshotListBox()
[12:21:46] SnapshotListBox: SnapshotListBox(): exit
[12:21:46] DeleteBox: DeleteBox()
[12:21:46] DeleteBox: DeleteBox(): exit
[12:21:46] DeleteFinishBox: DeleteFinishBox()
[12:21:46] DeleteFinishBox: DeleteFinishBox(): exit
[12:21:46] DeleteWindow: DeleteWindow(): exit
[12:21:46]
[12:21:46] page: 1
[12:21:46] DeleteBox: delete_snapshots()
[12:21:46] Main: delete_begin()
[12:21:46] delete_begin(): thread created
[12:21:46] Main: delete_begin(): exit
[12:21:46] delete_thread()
[12:21:46] ------------------------------------------------------------------------------
[12:21:46] Removing snapshot: 2022-05-09_12-19-51
[12:21:46] rm -rf '/run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51'
[12:21:46] Deleted directory: /run/timeshift/backup/timeshift-btrfs/snapshots/2022-05-09_12-19-51
[12:21:46] Removed snapshot: 2022-05-09_12-19-51
[12:21:46] ------------------------------------------------------------------------------
[12:21:46]
[12:21:46] page: 2
[12:21:47] SnapshotRepo: available()
[12:21:47] SnapshotRepo: has_btrfs_system()
[12:21:47] root_path=/run/timeshift/backup/@
[12:21:47] btrfs_mode=true
[12:21:47] is_available: ok
[12:21:47] SnapshotRepo: load_snapshots()
[12:21:47] Querying subvolume info...
[12:21:47] query_subvolume_id():@
[12:21:47] btrfs subvolume list '/run/timeshift/backup'
[12:21:47] query_subvolume_quota():@
[12:21:47] btrfs qgroup show '/run/timeshift/backup'
[12:21:47] E: ERROR: can't list qgroups: quotas not enabled
[12:21:47] E: btrfs returned an error: 256
[12:21:47] E: Failed to query subvolume quota
[12:21:48] Query completed
[12:21:48] loading snapshots from '/run/timeshift/backup/timeshift-btrfs/snapshots': 0 found
[12:21:48] SnapshotRepo: check_status()
[12:21:48] SnapshotRepo: available()
[12:21:48] SnapshotRepo: has_btrfs_system()
[12:21:48] root_path=/run/timeshift/backup/@
[12:21:48] btrfs_mode=true
[12:21:48] is_available: ok
[12:21:48] SnapshotRepo: has_snapshots()
[12:21:48] SnapshotRepo: has_space()
[12:21:48] Device: get_disk_space_using_df(): 1
[12:21:48] no snapshots
[12:21:48] Snapshot device: '/dev/nvme0n1p2'
[12:21:48] Snapshot location: /run/timeshift/backup
[12:21:48] No snapshots on this device
[12:21:48] First snapshot requires: 0 B
[12:21:48] Status: NO_SNAPSHOTS_HAS_SPACE
[12:21:48]
[12:21:48] SnapshotRepo: check_status(): exit
[12:21:48] SnapshotRepo: has_snapshots()
[12:21:48] SnapshotRepo: has_snapshots()
As far as I know, Manjaro does not enable quotas by default (that would be shocking) and I did not touch quotas in anyway. It is disabled for btrfs and in Timeshift UI, still, these errors appear.
EDIT:
it is now solved by enabling quotas in the UI, restarting Timeshift then disabling quotas, restarting Timeshift again then create a snapshot and delete it → no more error. It seems the UI was showing quotas to be disabled (reflecting timeshift.json config file) but in reality, Timeshift still had quotas enabled.
Must be a Timeshift bug.
But still, Manjaro does not enable BTRFS quota, however when you do a reinstall of Timeshift, it is actually enabled in Timeshift! It should be disabled by default in Timeshift to prevent these issues.