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?
Book a call and we will review your site before recommending anything.