507 Insufficient Storage
The server is unable to store the representation needed to complete the request (WebDAV).
Meaning & Description
Common Causes
- The server’s hard drive or partitioned volume is completely full.
- The application has hit a logical quota limit for a specific user or tenant.
- The server has run out of inodes, even if raw disk space is still available.
How to fix a 507 error
- SSH into the server and run `df -h` to check available disk space.
- Run `df -i` to check if the filesystem has run out of inodes.
- Check application-level user quotas in the database to see if a soft limit was reached.
- Clear old logs, temporary files, or cache directories to free up immediate space.
Browser & SEO Behaviour
Browser Behavior
Displays a generic 500-level error. If encountered during a file upload, the browser simply aborts the upload.
SEO Impact
Similar to a 500 error. If a page fails to render because the server cannot write to a cache disk, search engines will see a 500/507 and eventually drop the page.
CDN Behavior
Not cached. The CDN passes the error down to the client.
Code Examples
HTTP/1.1 507 Insufficient Storage
Content-Type: application/json
{
"error": "Insufficient Storage",
"message": "Your account has exceeded its 5GB storage limit."
}app.post("/upload", async (req, res) => {
const user = await getUser(req.user.id);
if (user.storageUsed >= user.storageLimit) {
return res.status(507).json({
error: "Insufficient Storage",
message: "Please upgrade your plan to upload more files."
});
}
// Handle file upload...
});from fastapi import FastAPI, HTTPException, UploadFile
app = FastAPI()
@app.post("/upload")
async def upload_file(file: UploadFile):
disk_full = check_disk_space()
if disk_full:
raise HTTPException(status_code=507, detail="Server disk is full. Cannot store file.")
return {"message": "File uploaded"}package main
import "net/http"
func handler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "Insufficient Storage", 507)
}
func main() {
http.HandleFunc("/upload", handler)
http.ListenAndServe(":8080", nil)
}[HttpPost("upload")]
public IActionResult UploadFile()
{
bool isDiskFull = true; // Assume disk check logic
if (isDiskFull)
{
return StatusCode(507, "Insufficient storage space on server.");
}
return Ok();
}curl -i -X PUT -F "file=@large-video.mp4" https://api.example.com/drive/uploadRaw HTTP Response Example
HTTP/1.1 507 Insufficient Storage
Content-Type: text/plain
Server out of disk space.Real-world Examples
Frequently Asked Questions
Is 507 a standard HTTP error?
It is technically part of the WebDAV extension (RFC 4918), not the core HTTP/1.1 specification, but it is widely recognized by modern HTTP clients.
What is the difference between 413 Payload Too Large and 507 Insufficient Storage?
413 means the specific file being uploaded is too large for the server to accept (e.g., a 5GB file on a 1GB limit endpoint). 507 means the server itself (or the user's total quota) is out of space, regardless of how small the current file is.
Why did my server return 507 when I have plenty of disk space?
Your filesystem may have run out of inodes. If a drive has millions of tiny files, it can run out of inodes (file metadata records) even if gigabytes of raw byte space remain. Use `df -i` on Linux to check.
Did You Know?
Because 507 was born in the WebDAV specification, many strict REST API purists prefer to use 403 Forbidden with a custom "Quota Exceeded" message instead of returning 507.
Running out of disk space often causes databases to crash silently, meaning you might see a 500 Internal Server Error or 502 Bad Gateway long before you ever see a 507.
Developer Tips
- If building a SaaS application with user storage tiers, returning 507 is a very expressive way to tell API clients that the user needs to upgrade their plan.
- Always monitor your production server’s disk space and set up alerts at 80% and 90% capacity to prevent catastrophic outages.
Interview Questions
These are questions you might face in a backend or API design interview that touch on HTTP 507.
If a user tries to upload a file to your API and their account storage quota is full, what HTTP status code should you return?
While 403 Forbidden or 400 Bad Request with a custom error message are commonly used, 507 Insufficient Storage is a highly descriptive status code explicitly designed for this scenario (originating from WebDAV).
Common Interview Mistakes
- Assuming 507 is used when a client doesn't have enough RAM or local disk space. 500-level errors are always server-side failures.