You drop a photo into the Media Library and WordPress answers "Upload: Failed to write file to disk." (or "The uploaded file could not be moved to wp-content/uploads"). The photo is fine and the site is fine. The server took the file in and then had nowhere it was allowed to put it: the disk is full, PHP's temporary folder is full or locked, or the uploads folder will not accept writes.
wp-content/uploads and the year/month folders in it should be 755 and owned by the same account as the rest of the site. Folders copied in during a site move are the usual ones with the wrong owner.error_log or debug.log after reading what filled it. If the site has simply grown, the plan needs more space.upload_tmp_dir (or the system temp folder) lives, and that the PHP user can write to it.wp-content/uploads and its subfolders to 755 (files 644) in the file manager. If they already are, the owner is wrong: the host can reset ownership to your account in a minute.wp-content/uploads again.| What you see | What it means | Usual fix |
|---|---|---|
| Disk usage at or near 100% | No room for any new file | Move old backups and logs off the server, or a bigger plan |
| Space is free, every upload still fails | PHP's temp folder is full or not writable | The host clears or fixes it |
| "Could not be moved to wp-content/uploads" | The uploads folder's permissions or owner | 755 folders, 644 files, owner reset by the host |
| Started right after moving the site | Old upload path in Settings, Media, or files copied in as another user | Empty the path box; ask the host to reset ownership |
| Only big files fail, small ones upload | An upload size limit, not the disk | See the upload error guide |
Most of these are a clean-up or one message to the host. If the disk fills up again every few weeks, or nobody knows what is eating the space, that is what the box below is for. Related: WordPress will not upload a photo or file, "Sorry, this file type is not permitted" and images not showing.