backup etcd for kubeadm fails with checksum mismatch

with merge of !7496 (merged) and while testing backup with kubeadm deployment, it was found that mcli was uploading the kubeadm etcd backup with multiple uploads as seen in etag due to which the backup-etcd cron job was failing continuously with error

-- Backup compressed (size: 69544953 bytes).
Added `backup` successfully.
`/tmp/tmp.bBKkll` -> `backup/backup/kubeadm-backup_etcd_backup.tar.gz`
┌───────────┬─────────────┬──────────┬─────────────┐
│ Total     │ Transferred │ Duration │ Speed       │
│ 66.32 MiB │ 66.32 MiB   │ 00m00s   │ 66.54 MiB/s │
└───────────┴─────────────┴──────────┴─────────────┘
-- Backup uploaded
-- Size integrity check passed: actual size=69544953 bytes, s3 size uploaded=69544953 bytes
-- WARNING: Checksum mismatch! Local: 3c41188050cf5efa4d92f146ac522333, S3: d23213bab5e0e23140a4b47ad7b1444a-5
Backup Size checksum failed: S3 object size does not have same checksum as that of backup being done

NAME                                                         READY   STATUS      RESTARTS   AGE
backup-etcd-29692165-9jb2g                                   0/1     Error       0          17m
backup-etcd-29692165-lrnb8                                   0/1     Error       0          16m
backup-etcd-29692165-mld5d                                   0/1     Error       0          16m
backup-etcd-29692165-wh78x                                   0/1     Error       0          15m
backup-etcd-29692165-wm7zb                                   0/1     Error       0          11m 
root@rke2:/home/ubuntu/sylva-core# mcli stat backup/backup/kubeadm-backup_etcd_backup.tar.gz --json --insecure
{
 "status": "success",
 "name": "kubeadm-backup_etcd_backup.tar.gz",
 "lastModified": "2026-06-15T13:16:45Z",
 "size": 73353178,
 "etag": "a615169313da5473c87430ebff9a5e47-5",
 "type": "file",
 "metadata": {
  "Content-Type": "application/octet-stream"
 }
}

however, when this was downloaded and then checksum was verified, it was same

root@rke2:/home/ubuntu/sylva-core# mcli cp backup/backup/kubeadm-backup_etcd_backup.tar.gz artifacts/ --insecure
...ckup_etcd_backup.tar.gz: 67.68 MiB / 67.68 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 92.17 MiB/s 0s
root@rke2:/home/ubuntu/sylva-core#
root@rke2:/home/ubuntu/sylva-core# md5sum artifacts/kubeadm-backup_etcd_backup.tar.gz
3c41188050cf5efa4d92f146ac522333 artifacts/kubeadm-backup_etcd_backup.tar.gz

it's better to either disable checksum in case if multipart upload is detected or downlaod first and then verify checksum .

cc @pv0306 @tmmorin @stoub

Edited by Sakshi Choudhary