fix: use warning status when backup succeeds but upload fails #199

Merged
jmiller merged 4 commits from fix/upload-fail-warning-status into main 2026-06-30 19:18:07 +00:00
Owner

Summary

  • Backups where the archive was created successfully but remote upload failed were previously marked as complete, hiding the upload failure
  • Now these get a warning status with a yellow badge so operators can immediately see which backups didn't reach their remote destination
  • Warning-status records are fully usable: downloadable, browsable, restorable, purgeable
  • Updated across 18 files: both backup engines, both restore engines, dashboard model, status helper, controllers, templates, filter dropdown, cpanel module, language files, and SQL schema comment

Changed files

  • BackupEngine / SteppedBackupEngine: set warning instead of complete when $uploadFailed is true
  • RestoreEngine / SteppedRestoreEngine: accept warning records for restore
  • AjaxController: browseArchive and countPurge accept warning
  • BackupsController: purge includes warning records
  • DashboardModel: last backup, stats, and profile breakdown include warning
  • BackupStatusHelper: latest record and streak count include warning
  • PreflightCheck: disk space estimation uses warning backups
  • BackupEngine: differential base lookup includes warning
  • Templates: yellow bg-warning text-dark badge in list, detail, and cpanel module
  • filter_backups.xml: warning option in status dropdown
  • Language files: COM_MOKOJOOMBACKUP_STATUS_WARNING and MOD_MOKOSUITEBACKUP_CPANEL_STATUS_WARNING

Test plan

  • Trigger a backup with a misconfigured remote — record should show yellow "warning" badge
  • Verify warning record is downloadable, browsable, and restorable
  • Filter by "Warning" status in Backup Records dropdown
  • Dashboard "Last Backup" card shows warning records
  • Purge includes warning records
  • CPanel module shows yellow badge for warning status

https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG

## Summary - Backups where the archive was created successfully but remote upload failed were previously marked as `complete`, hiding the upload failure - Now these get a `warning` status with a yellow badge so operators can immediately see which backups didn't reach their remote destination - Warning-status records are fully usable: downloadable, browsable, restorable, purgeable - Updated across 18 files: both backup engines, both restore engines, dashboard model, status helper, controllers, templates, filter dropdown, cpanel module, language files, and SQL schema comment ## Changed files - **BackupEngine** / **SteppedBackupEngine**: set `warning` instead of `complete` when `$uploadFailed` is true - **RestoreEngine** / **SteppedRestoreEngine**: accept `warning` records for restore - **AjaxController**: `browseArchive` and `countPurge` accept `warning` - **BackupsController**: purge includes `warning` records - **DashboardModel**: last backup, stats, and profile breakdown include `warning` - **BackupStatusHelper**: latest record and streak count include `warning` - **PreflightCheck**: disk space estimation uses `warning` backups - **BackupEngine**: differential base lookup includes `warning` - **Templates**: yellow `bg-warning text-dark` badge in list, detail, and cpanel module - **filter_backups.xml**: `warning` option in status dropdown - **Language files**: `COM_MOKOJOOMBACKUP_STATUS_WARNING` and `MOD_MOKOSUITEBACKUP_CPANEL_STATUS_WARNING` ## Test plan - [ ] Trigger a backup with a misconfigured remote — record should show yellow "warning" badge - [ ] Verify warning record is downloadable, browsable, and restorable - [ ] Filter by "Warning" status in Backup Records dropdown - [ ] Dashboard "Last Backup" card shows warning records - [ ] Purge includes warning records - [ ] CPanel module shows yellow badge for warning status https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
jmiller added 2 commits 2026-06-30 19:14:41 +00:00
fix: use warning status when backup succeeds but remote upload fails
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
aefa46e0c4
Previously a successful backup with a failed remote upload was marked
as "complete", hiding the upload failure. Now these records get a
"warning" status with a yellow badge so operators can see at a glance
which backups didn't reach their remote destination.

Warning-status records are treated as usable backups throughout:
- Downloadable, browsable, and restorable (the archive is intact)
- Counted in dashboard stats, storage totals, and success streaks
- Included in purge operations and differential base lookups
- Shown with yellow "warning" badge in list, detail, and cpanel module
- Filterable via the status dropdown on Backup Records

Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
jmiller added 1 commit 2026-06-30 19:17:38 +00:00
docs: add warning status changes to changelog
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 6s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Generic: Project CI / Lint & Validate (pull_request) Successful in 16s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 36s
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
9c0c6eae15
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
jmiller added 1 commit 2026-06-30 19:17:59 +00:00
chore(version): pre-release bump to 02.52.24-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 24s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 2m56s
9820d75212
jmiller merged commit 7b38e238f5 into main 2026-06-30 19:18:07 +00:00
jmiller deleted branch fix/upload-fail-warning-status 2026-06-30 19:18:08 +00:00
Sign in to join this conversation.
No Reviewers
Priority -
Type -
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteBackup#199