Split from #1532 (point 3).
`RemoveOldBackupsRemote` runs in `upload.go` after the new backup is fully uploaded. When it fails, `CreateToRemote` returns an error and the `watch` loop treats it like a failed upload: `prevBackupName` is not advanced (next increment diffs from a stale base although the fresh backup exists on remote), `createRemoteErrCount` grows and `watch` aborts with "too many errors".
Proposal: in `watch`, when upload succeeded but retention failed, advance `prevBackupName`/`backupType` and don't count it towards abort, but still log at error level and report the error in status/callback. One-shot `create_remote` keeps the non-zero exit code.
Split from #1532 (point 3).
`RemoveOldBackupsRemote` runs in `upload.go` after the new backup is fully uploaded. When it fails, `CreateToRemote` returns an error and the `watch` loop treats it like a failed upload: `prevBackupName` is not advanced (next increment diffs from a stale base although the fresh backup exists on remote), `createRemoteErrCount` grows and `watch` aborts with "too many errors".
Proposal: in `watch`, when upload succeeded but retention failed, advance `prevBackupName`/`backupType` and don't count it towards abort, but still log at error level and report the error in status/callback. One-shot `create_remote` keeps the non-zero exit code.