Short answer: “HTTP error” in the media uploader is a generic front-end message. WordPress tried to process the file after upload and something failed server-side. The real reason is in the PHP error log or the server response, not in the modal.
Separate upload from processing
Two things happen when you add an image: the file transfers, then WordPress generates the resized versions. A failure during transfer points at size limits or a proxy; a failure during processing points at memory or the image library. Knowing which stage failed removes most of the guesswork — try a small 100 KB JPEG first: if that works, the problem is size or processing, not permissions.
The usual causes and their fixes
- Upload/POST size: raise
upload_max_filesizeandpost_max_sizeinphp.inior your host panel; they must both exceed the image size. - Memory: generating thumbnails from a large image exhausts PHP memory — raise
WP_MEMORY_LIMIT. - Permissions:
/wp-content/uploadsmust be writable (folders 755, files 644) and owned by the web user after a migration. - Image library: the server’s Imagick or GD library may be missing or unable to read the format; check Site Health.
- Security/CDN: a firewall, mod_security rule or CDN can block the upload request.
Narrow it down
- Try a different browser or an incognito window to rule out a client-side extension.
- Temporarily switch to a default theme and test — a theme can hook into the upload pipeline.
- Check Tools › Site Health for a missing image library or a low memory limit.
- Read the PHP error log at the moment of the failed upload.
Verify properly
Do not loosen directory permissions to 777 to make it work — that trades a small inconvenience for a real exposure. Once fixed, upload one small and one realistically large image, confirm the resized versions were created, and check the image displays on the front end. An upload that lands in the library but produces no thumbnails is still a broken pipeline.
WP REPAIR INCIDENT STANDARD
How to narrow the fault without guessing
The media uploader combines transfer, authentication, filesystem write and image processing. A small control file reveals which stage failed before permissions or memory are changed.
Test a small JPEG and record the network response of the upload request.
Confirm the file lands in uploads even if thumbnail generation fails.
Read PHP logs for Imagick, GD, memory or timeout errors at the same timestamp.
Verify upload size, POST size, ownership and temporary-directory configuration.
What must be verified
- Small and realistic large images upload.
- Expected image sizes are generated and readable.
- The front end serves them without permission or mixed-content errors.
Official technical sources
Continue the diagnosis
This guide explains the diagnosis. If the site is affected now, the intervention should preserve a rollback path and verify the real business journey.
See the emergency repair service →