WordPress Image Upload HTTP Error: Fix (2026)
Quick answer
The WordPress image upload HTTP error is almost always one of: (1) PHP memory limit too low to process the image (raise to 256M), (2) Imagick vs GD conflict, force GD via a mu-plugin, (3) mod_security rule on your host blocking multipart uploads, (4) wrong file permissions on wp-content/uploads (should be 755 for folders, 644 for files).
Fix #1, Raise PHP memory
Add to wp-config.php: `define('WP_MEMORY_LIMIT', '256M');` and `define('WP_MAX_MEMORY_LIMIT', '512M');`. Large images (4000×3000 phone photos) can spike memory during thumbnail generation.
Fix #2, Force GD image editor
Create wp-content/mu-plugins/force-gd.php with: `add_filter('wp_image_editors', fn() => ['WP_Image_Editor_GD']);`. On many hosts, Imagick is compiled without the codecs WordPress expects and silently fails on JPEG uploads.
Prefer we just fix it?
This exact error is what our flat-fee website repair service resolves, most fixes ship in under 60 minutes, no retainer, no lock-in. Learn more about flat-fee website repair or grab a slot below.
Fix #3, Ask host to whitelist mod_security
If uploads fail with a generic HTTP error and your error log shows a mod_security block, ask your host to whitelist the wp-admin/async-upload.php endpoint for your user. Common on shared hosts running ModSecurity CRS 3.
Fix #4, Repair file permissions
SSH in and run: `find wp-content/uploads -type d -exec chmod 755 {} \;` and `find wp-content/uploads -type f -exec chmod 644 {} \;`. Ownership should be the web-server user (www-data, apache, or nginx depending on host).
When to call for help
If uploads still fail after these four fixes, the issue is usually a host-level firewall or a broken PHP-FPM pool. Our repair service diagnoses in under 30 minutes, flat $99.
Common questions
Why does WordPress say 'HTTP error' when I upload an image?+
WordPress uses a generic 'HTTP error' as a catch-all for any failure during upload, memory exhaustion, Imagick errors, mod_security blocks, or bad permissions. Check /wp-content/debug.log after enabling WP_DEBUG_LOG to see the real cause.
Does image size cause the HTTP error?+
Often, yes. Phone photos are 5-10 MB and 4000×3000 px, resizing them into 6+ WordPress thumbnail sizes can exhaust PHP memory. Resize to under 2500 px wide before upload, or raise WP_MEMORY_LIMIT to 256M.
Should I use Imagick or GD?+
GD is more compatible across cheap shared hosts. Imagick is faster and produces better WebP but requires a properly compiled PHP extension. If uploads fail intermittently, force GD via mu-plugin as a diagnostic, if it fixes it, your host's Imagick is broken.
How do I fix HTTP errors on Bluehost or SiteGround uploads?+
Both hosts run aggressive mod_security. Open a support ticket asking them to whitelist async-upload.php for your account, or use their file manager to upload directly to wp-content/uploads and register via a plugin like Add From Server.
Want help with this?
The pages below go deeper, by service and by city.
Services
Want this handled for you?
Send the site and the symptom. A senior WordPress engineer opens it, tells you what is actually broken, and replies within one business hour. No card, no sales call, no obligation.
