1
Troubleshooting
Jonathan Miller edited this page 2026-06-02 19:02:26 -05:00

Troubleshooting

Backup fails with "Cannot create archive"

  • Check backup directory exists and is writable by PHP
  • Default: administrator/components/com_mokobackup/backups/
  • Ensure PHP ext-zip extension is installed

Backup fails with timeout

The AJAX step engine should handle this automatically. If it still times out:

  • Use the CLI script instead (no timeout): php cli/mokobackup.php --profile=1
  • Use Scheduled Tasks (run via CLI cron)
  • Split into separate database-only and files-only profiles

Shared hosting PHP limits

MokoJoomBackup automatically:

  • Calls set_time_limit(0) and ini_set('max_execution_time', '0')
  • Increases memory to 512M if below
  • Uses ignore_user_abort(true) so backup finishes if browser closes
  • Falls back to AJAX step mode (one table per step, 200 files per step)

Remote upload fails

FTP

  • Test credentials with a standalone FTP client
  • Enable Passive Mode
  • Check outgoing FTP not blocked by firewall

Google Drive

  • Verify refresh token hasn't been revoked
  • Check Drive API is enabled in Cloud Console
  • Verify folder ID exists and user has write access

S3

  • Verify access key and secret key
  • Check bucket name and region
  • For custom endpoints, verify the URL is correct

Encrypted backup won't extract

  • Verify the correct password
  • Check PHP has libzip 1.2.0+ (ZipArchive::EM_AES_256 must be defined)
  • Try extracting with 7-Zip to verify the password works outside PHP

Dashboard widget shows warning

  • No backups: Run your first backup
  • Recent failures: Check backup logs for errors
  • Stale (>7 days): Set up scheduled tasks for automatic backups

Integrity verification fails

The SHA-256 checksum mismatch means the archive file has been modified since creation. Possible causes:

  • File corruption during transfer
  • Accidental modification
  • Archive was re-encrypted or decompressed

Differential backup runs as full

This happens when no base full backup with a manifest exists. Run a full backup first, then differentials will work.

Checking Backup Logs

Each backup record stores a step-by-step log:

[14:30:00] Backup started: Daily Full Backup
[14:30:01] Starting database dump...
[14:30:05] Database dump complete: 42 tables, 15,234,567 bytes
[14:30:05] Starting file scan...
[14:30:08] Backing up 12,345 files
[14:30:45] Files added to archive
[14:30:46] Archive created: 45.23 MB
[14:30:46] SHA-256: a1b2c3d4...
[14:30:46] Starting remote upload (s3)...
[14:31:02] Remote upload complete