Skip to content

File Permissions

Symptom

Restore, migration, or local-cleanup operations fail specifically at the local file-system step (uploading to storage still works, but writing/deleting local files doesn’t).

Likely cause

WordPress’s own process (PHP-FPM/Apache user) doesn’t have write access to wp-content/uploads, or a specific subdirectory within it.

What the plugin does to protect you either way

  • Local file operations always confirm the target path’s realpath is genuinely under the uploads basedir before touching it — this is a hard safety check, not a setting, so a misconfigured path fails safely rather than writing/deleting somewhere unexpected.
  • Local files are only deleted after a successful remote HEAD verification — there is no way to turn this check off.

Steps to diagnose

  1. Confirm the web server user (commonly www-data) owns, or at least has write access to, wp-content/uploads and its subdirectories.
  2. Re-run the failing operation (restore, migrate --delete-local, etc.) and check for a specific permission-denied error rather than a generic failure.