HTTP 500 Internal Server Error is the generic server-side error indicating the server encountered an unexpected condition that prevented it from fulfilling the request. This is the 'catch-all' for unhandled exceptions, programming errors, and unexpected failures. Unlike specific 5xx codes (502, 503, 504), a 500 means the problem is in the server's own code or configuration, not in an upstream service or temporary condition. The error response should never expose stack traces or internal details in production.
Response includes the status code, standard headers (including Content-Type), and a small diagnostic JSON body describing the request and returned status.
Simulator URL (copy in the app after load — not a normal link):
https://httpstatus.com/api/status/500
Example request:
curl -i "https://httpstatus.com/api/status/500"A generic error message, given when an unexpected condition was encountered.
On this code, Inspector focuses on semantics, headers, and correctness warnings that commonly affect clients and caches.
HTTP 500 Internal Server Error represents a server-side failure that requires different handling than other 5xx errors. Understanding the precise cause helps operations teams diagnose and resolve issues faster. The server should log the full error details internally while returning a sanitized error to the client.
// Handle 500 Internal Server Error
process.on('unhandledRejection', (reason) => {
console.error('Unhandled rejection:', reason);
});
app.use((err, req, res, next) => {
console.error(`${req.method} ${req.url}:`, err.stack);
res.status(err.status || 500).json({
error: process.env.NODE_ENV === 'production'
? 'Internal Server Error'
: err.message,
requestId: req.id
});
});from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
import logging
logger = logging.getLogger(__name__)
@app.exception_handler(Exception)
async def server_error_handler(request: Request, exc: Exception):
logger.error(f'{request.method} {request.url}: {exc}',
exc_info=True)
return JSONResponse(
status_code=500,
content={'error': 'Internal Server Error', 'request_id': request.state.id}
)@ControllerAdvice
public class GlobalErrorHandler {
private static final Logger log = LoggerFactory.getLogger(
GlobalErrorHandler.class);
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> handleException(
Exception ex, HttpServletRequest req) {
log.error("{} {}: {}", req.getMethod(),
req.getRequestURI(), ex.getMessage(), ex);
return ResponseEntity.status(500)
.body(new ErrorResponse("Internal Server Error",
"An unexpected error occurred"));
}
}func errorMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
defer func() {
if err := recover(); err != nil {
log.Printf("%s %s: %v\n%s",
r.Method, r.URL, err, debug.Stack())
w.WriteHeader(500)
json.NewEncoder(w).Encode(map[string]string{
"error": "Internal Server Error",
})
}
}()
next.ServeHTTP(w, r)
})
}