Docs menu Reference / Troubleshooting

Troubleshooting

Start with the Logs tab under Media → Plume. It filters by level, source and search text, and it shows the reason for most failures.

Test Connection fails

Go to Tools and select Test Connection. Plume writes a small connection-test-<time>.txt object, reads it back and deletes it. On failure it shows “Connection failed” with the provider’s message, plus Connection details and Suggested checks.

Check these in order:

  1. Region. It must match the bucket’s region exactly.
  2. Endpoint. Leave it empty for S3, R2, Backblaze B2, DigitalOcean Spaces and Wasabi. MinIO and S3-compatible need a full URL with https://.
  3. Path style. Some S3-compatible servers need Use Path Style. Try toggling it.
  4. Permissions. The key must be able to list, read, write and delete objects in the bucket.
  5. Key type. Backblaze B2 needs an application key. Spaces needs a Spaces key. GCS needs an HMAC key.
  6. Server clock. Signed requests fail when the server time is far off.

Images do not load after offload

  • Open the image URL in a private window. A 403 means the object is not public. Fix the bucket policy or CDN. Plume does not set object ACLs.
  • On Cloudflare R2, set the Custom Domain to your public R2 domain. Without it, Plume builds URLs from the account endpoint, which is not public.
  • If the Custom Domain has a path or prefix mismatch, the key will not resolve. See custom domain.
  • If old pages still show broken URLs, purge the cache.
  • If Serve From Storage is off, Plume does not rewrite URLs.

New uploads stay Pending

By default Plume waits for the nightly run at 03:00. This is expected. To offload at upload time, turn off Enable Off-hours Batch. See nightly batch.

If it still does not move, check that Enable Offloading is on and credentials are complete. Also check that the file is not excluded by Ignored Paths, a minimum size or a MIME rule. See offloading media.

A bulk job is stuck

Bulk jobs and the nightly batch run through WP-Cron. Check that cron works:

wp cron event list
wp cron event run --due-now

On sites with little traffic, or with DISABLE_WP_CRON set to true, add a system cron:

* * * * * cd /var/www/html && wp cron event run --due-now >/dev/null 2>&1

Only one bulk job runs at a time. If you see “A bulk media job is already running”, wait for it, or use Pause in Tools.

An item shows Needs attention

Open the Logs tab and search for the attachment ID. Then use Retry offload in the Media Library, or Retry failed items under Tools. When the local source file is missing, Plume waits 12 hours before it tries again.

Cloudflare purge turned itself off

Plume disables it when the Zone ID or the API token is missing, and logs “Cloudflare purge was disabled because Zone ID or API token is missing.” Enter both and turn it back on. The token needs the Zone: Cache Purge permission.

Another plugin conflicts

Two offload plugins at once can break URLs. Deactivate the other plugin before you enable Plume. See integrations.

Going back to local files

Run the restore job, then put URLs back in post content:

wp nimbus revert --limit=500

Plume shows a notice on deactivation that points to a Revert URLs button in Tools. Use the command above for this step. See restoring files.

Still stuck

Open an issue at github.com/ArunPrakashG/media-offload/issues. Include the Plume version, your provider, the steps you took and the relevant log lines. Remove keys and tokens first.

Tip: Set Minimum Log Level to debug while you reproduce a problem, then set it back to info.