Unable to Create Directory uploads/ - Is Its Parent Directory Writable?

WordPress | Updated March 2026

The "Unable to create directory" error in WordPress means the web server doesn't have write permission to the uploads directory (or the directory doesn't exist). This prevents WordPress from saving media uploads, plugin files, and other content it needs to write to disk. The fix is usually a simple permission correction in cPanel's File Manager or via SSH.

01. Why This Happens

WordPress stores uploaded media in wp-content/uploads/ and creates year/month subdirectories automatically (e.g., uploads/2026/03/). For this to work, the web server process needs write permission to both wp-content/ and uploads/.

Common scenarios that cause this error:

Wrong ownership - Files were uploaded via FTP or SSH as a different user than the web server expects. On CloudLinux/cPanel servers, files should be owned by your cPanel username.

Wrong permissions - The directory permissions are set to 700 or 750 instead of 755, preventing the web server from writing.

Missing uploads directory - The wp-content/uploads/ directory was accidentally deleted or never created (common on fresh manual WordPress installs).

Disk quota exceeded - Your hosting account has reached its disk space or inode limit. WordPress can't create new directories or files. See our disk space guide.

02. Fixing Permissions

Via cPanel File Manager

  1. Open File Manager - In cPanel, click "File Manager"
  2. Navigate to your WordPress directory - Usually public_html/
  3. Right-click wp-content - Select "Change Permissions"
  4. Set to 755 - Check boxes for Owner: Read/Write/Execute, Group: Read/Execute, World: Read/Execute
  5. Open wp-content - Find the uploads directory and set it to 755 as well

Via SSH

# Fix ownership (replace 'username' with your cPanel username)
chown -R username:username ~/public_html/wp-content/uploads/

# Fix permissions - directories to 755, files to 644
find ~/public_html/wp-content/uploads/ -type d -exec chmod 755 {} \;
find ~/public_html/wp-content/uploads/ -type f -exec chmod 644 {} \;
Warning

Never set directories to 777. This gives everyone read/write/execute access and is a security risk. On Ultra Web Hosting servers, 755 is the correct permission for directories and 644 for files. Our web server configuration (suEXEC/LSAPI) runs PHP as your cPanel user, so 755 provides the necessary write access.

03. Creating a Missing Directory

If the uploads directory doesn't exist at all:

Via cPanel File Manager

Navigate to wp-content/, click "+ Folder" in the toolbar, name it uploads, and click "Create New Folder." Permissions should default to 755.

Via SSH

mkdir -p ~/public_html/wp-content/uploads
chmod 755 ~/public_html/wp-content/uploads

04. Checking the Upload Path Setting

WordPress stores the upload directory path in the database. If it's set to an incorrect path, WordPress will try to write to the wrong location:

# Check the current upload path via WP-CLI
wp option get upload_path
wp option get upload_url_path

# Or check in the database directly
mysql -u root dbname -e "SELECT option_value FROM wp_options WHERE option_name IN ('upload_path','upload_url_path');"

If upload_path contains an absolute path that doesn't match your server directory, clear it:

wp option update upload_path ""

An empty upload_path tells WordPress to use the default wp-content/uploads/ relative to the WordPress installation directory.

"Missing a temporary folder" - PHP's temp directory is misconfigured. See our missing temporary folder guide.

"The uploaded file could not be moved" - Same root cause (permissions) but the error occurs at a different stage of the upload process. See our uploaded file guide.

"Upload: Failed to write file to disk" - Either a permissions problem or disk space is full. Check both.

Still Can't Upload?

If permissions look correct and you're still getting upload errors, the issue may be a PHP open_basedir restriction or a ModSecurity rule. Open a ticket and we'll investigate.

Open a Support Ticket

Quick Recap: Fixing WordPress Upload Directory Errors

  1. Check if uploads/ exists - Create it in wp-content/ if it's missing
  2. Set permissions to 755 - Both wp-content/ and uploads/ need 755
  3. Fix ownership - Files should be owned by your cPanel username
  4. Check disk space - Verify you haven't hit your account's disk quota
  5. Check upload_path - Clear any incorrect absolute path in WordPress options

Last updated March 2026 · Browse all WordPress articles

  • 157 Users Found This Useful

Was this answer helpful?

Related Articles

WordPress Response Body Too Large and Too Many Arguments Errors

WordPress | Updated March 2026 The "Response Body Too Large" and "Too Many Arguments in...

Quickly Disable All WordPress Plugins via phpMyAdmin

WordPress | Updated 2026 If a WordPress plugin is causing your site to crash, show a white...

CloudFlare for WordPress

Cloudflare + Web Hosting Guide | Updated 2026 Cloudflare is a content delivery network (CDN)...

WordPress error "This file cannot be imported - It may be caused by file_uploads being disabled in your php ini"

WordPress | Updated March 2026 The "This file cannot be imported" error in WordPress appears...

504 Error - Are You Sure You Want to Do This?

WordPress | Updated March 2026 The "Are you sure you want to do this?" message in WordPress...



Save 30% on web hosting - Use coupon code Hosting30