Problem × WordPress
WordPress images not uploading or media library not loading
the HTTP error, the blank grid, the forever spinner
Why it happens
The HTTP error on upload. Almost always one of: PHP memory exhaustion during image resizing (the editor opens a 6000px phone photo and dies), file permissions wrong on wp-content/uploads after a migration, or a security plugin blocking the request. The message is vague on purpose; the causes are not exotic.
Media library blank or endless spinner. The grid loads thumbnails through AJAX; an object-cache misconfiguration, a broken database table (imported sites), or a plugin injecting errors into the JSON response breaks exactly that grid while everything else seems fine.
Uploaded but not displaying. The file is on the server, the URL 404s: upload path mismatch after a migration (the database remembers an old uploads path), or a CDN/rewrite rule pointing image URLs at a domain that no longer serves them.
Triage in order
Upload the same image with all plugins deactivated: if it works, reactivate one by one until the culprit shows. Still failing? Check WooCommerce > Status (or Site Health) for the memory limit, raise it to 512M in wp-config, retest. Check permissions on wp-content/uploads (folders 755, files 644). Still broken? Open browser dev tools on the upload request and read the actual server response; the “HTTP error” always has a real message hiding behind it. After a migration, compare the uploads URL stored under Settings > Media with the real folder path.
When to bring us in
If images broke after a migration, after switching hosts, or the media library has been broken so long the site runs on FTP uploads, this is an hour of emergency WordPress work for us: fix the root cause, repair the broken records, and verify the library is whole again. Fixed price, scoped before we start.
Keep exploring