Server Error status codes
Tags: webdev, programming, productivity, softwareengineering
Published: 2020-02-06 21:44:51

---
title: Server Error status codes
published: true
description: listing of server error status codes and their descriptions
tags: webdev, programming, productivity, softwareengineering
series: HTTP Status Code Cheatsheet
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/0m84c3g5lcvkociuvvgq.jpg
---


*Preface:* A HTTP status code is issued from the server in response to a client's request made to the server. The five status code response classes are **informational**, **successful**, **redirection**, **client error** and **server error**.

---

---

---

## Server Error status codes

Server error status codes indicate that the request was valid, but an error on the server is preventing its fulfillment. 

### Table Of Contents
  * [500 Internal Server Error](#internal-server-error)
  * [501 Not Implemented](#not-implemented)
  * [502 Bad Gateway](#bad-gateway)
  * [503 Service Unavailable](#service-unavailable)
  * [504 Gateway Timeout](#gateway-timeout)
  * [505 HTTP Version Not Supported](#http-version-not-supported)
  * [506 Variant Also Negotiates](#variant-also-negotiates)
  * [507 Insufficient Storage (WebDAV)](#insufficient-storage)
  * [508 Loop Detected (WebDAV)](#loop-detected)
  * [510 Not Extended](#not-extended)
  * [511 Network Authentication Required](#network-authentication-required)
  * [598 Network Read Timeout Error](#network-read-timeout-error)
  * [599 Network Connect Timeout Error](#network-connect-timeout-error)

---
#### `500 Internal Server Error` <a name="internal-server-error"></a>

*Definition:* The request can't be fulfilled due to an unexpected condition encountered by the server. This error response is a generic "catch-all" response, given when no more specific message is suitable.

`500 Internal Server Error` is defined in [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6.6.1).

---
#### `501 Not Implemented` <a name="not-implemented"></a>

*Definition:* The request can't be fulfilled because the server does not support the functionality required to fulfill it. A `Retry-After` header can also be sent to tell the requester when to check back to see if the functionality is supported by then. `501 Not Implemented` is the appropriate response when the server does not recognize the request method and is incapable of supporting it for any resource. The only methods that servers are required to support (and therefore that must not return `501 Not Implemented`) are `GET` and `HEAD`. If the server does recognize the method, but intentionally does not support it, the appropriate response is `405 Method Not Allowed`.

`501 Not Implemented` is defined in [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6.6.2).

---
#### `502 Bad Gateway` <a name="bad-gateway"></a>

*Definition:* The request cannot be fulfilled because the server was acting as a gateway or a proxy and received an invalid response from the upstream server.

`502 Bad Gateway` is defined in [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6.6.3).

---
#### `503 Service Unavailable` <a name="service-unavailable"></a>

*Definition:* The request cannot be handled by the server because it is overloaded or down for maintenance. In other words, the server is not ready to handle the request. This response should be used for temporary conditions and the `Retry-After` HTTP header should, if possible, contain the estimated time for the recovery of the service. Caching-related headers that are sent along with this response should be taken care of, as a `503 Service Unavailable` status is often a temporary condition and responses shouldn't usually be cached.

`503 Service Unavailable` is defined in [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6.6.4).

---
#### `504 Gateway Timeout` <a name="gateway-timeout"></a>

*Definition:* The request cannot be fulfilled because the server was acting as a gateway or a proxy and it did not receive a response in time from the upstream server.

`504 Gateway Timeout` is defined in [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6.6.5).

---
#### `505 HTTP Version Not Supported` <a name="http-version-not-supported"></a>
The request is using an HTTP version that is not supported by the server.

`505 HTTP Version Not Supported` is defined in [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6.6.6).

---
#### `506 Variant Also Negotiates` <a name="variant-also-negotiates"></a>

*Definition:* The request was made in the context of Transparent Content Negotiation, a protocol that enables a client to retrieve the best variant of a given resource, where the server supports multiple variants. The `506 Variant Also Negotiates` status code indicates an internal server configuration error in which the chosen variant is itself configured to engage in content negotiation, so is not a proper negotiation endpoint.

`506 Variant Also Negotiates` is defined in [RFC 2295](https://tools.ietf.org/html/rfc2295#section-8.1).

---
#### `507 Insufficient Storage` <a name="insufficient-storage"></a>

*Definition:* The request cannot be fulfilled because the server is unable to store the representation needed to complete it.

`507 Insufficient Storage` is defined in [RFC 4918](https://tools.ietf.org/html/rfc4918#section-11.5).

---
#### `508 Loop Detected` <a name="loop-detected"></a>
The request cannot be fulfilled because the server detected an infinite loop while processing it. This status indicates that the entire operation failed.

`508 Loop Detected` is defined in [RFC 5842](https://tools.ietf.org/html/rfc5842#section-7.2).

---
#### `510 Not Extended` <a name="not-extended"></a>

*Definition:* The request was made in the context of the HTTP Extension Framework and cannot be fulfilled because one, many or all the described extensions are not supported by it.

`510 Not Extended` is defined in [RFC 2774](https://tools.ietf.org/html/rfc2774#section-7).

---
#### `511 Network Authentication Required` <a name="network-authentication-required"></a>

*Definition:* The request was made without proper identification. The client needs to authenticate to gain network access. This status is not generated by origin servers, but by intercepting proxies that control access to the network. Network operators sometimes require some authentication, acceptance of terms, or other user interaction before granting access (for example in an internet café or at an airport). They often identify clients who have not done so using their Media Access Control (MAC) addresses.

`511 Network Authentication Required` is defined in [RFC 6585](https://tools.ietf.org/html/rfc6585#section-6).

---
#### `598 Network Read Timeout Error` <a name="network-read-timeout-error"></a>

*Definition:* This status code is not specified in any RFCs, but is used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.

---
#### `599 Network Connect Timeout Error` <a name="network-connect-timeout-error"></a>

*Definition:* This status code is not specified in any RFCs, but is used by some HTTP proxies to signal a network connect timeout behind the proxy to a client in front of the proxy.

---

---

---

Unofficial and customized non-standard responses defined by server softwares are not included in the list above. 

Resources:
- [Hypertext Transfer Protocol (HTTP) Status Code Registry](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)
- [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)