Common Error Messages Explained: HTTP, JavaScript, and System Errors
Error messages are the computer's way of telling you something went wrong, but they are not always easy to understand. Whether you are a developer staring at a 500 Internal Server Error, a user confused by a Blue Screen of Death, or a student trying to debug a JavaScript TypeError, this guide breaks down the most common error messages across HTTP, JavaScript, and system contexts.
For a quick explanation of any error message, paste it into our free Error Message Explainer and get a plain-English breakdown instantly.
HTTP Error Codes
HTTP status codes are three-digit numbers returned by web servers. Codes in the 400 range indicate client errors (the request was wrong), while 500-range codes indicate server errors (the server failed to fulfill a valid request).
Client Errors (4xx)
| Code | Name | What It Means |
|---|---|---|
400 | Bad Request | The server cannot process your request due to malformed syntax. Check your URL parameters, request body, or headers for typos or invalid formatting. |
401 | Unauthorized | You need to authenticate first. This usually means a missing or expired login token. Try logging in again. |
403 | Forbidden | You are authenticated but do not have permission to access this resource. This is a permissions issue, not an authentication one. |
404 | Not Found | The requested page or resource does not exist. The URL may be misspelled, or the content may have been moved or deleted. |
405 | Method Not Allowed | The HTTP method (GET, POST, etc.) is not supported for this endpoint. Check the API documentation for allowed methods. |
429 | Too Many Requests | You are being rate-limited. Wait before sending more requests, or implement exponential backoff in your code. |
If you are encountering browser-related issues alongside these errors, check our guide on fixing Google Chrome crashes or resolving WiFi connectivity problems.
Server Errors (5xx)
| Code | Name | What It Means |
|---|---|---|
500 | Internal Server Error | A generic catch-all error meaning something broke on the server side. Check server logs for the actual exception. |
502 | Bad Gateway | A reverse proxy or load balancer received an invalid response from the upstream server. Often a temporary infrastructure issue. |
503 | Service Unavailable | The server is temporarily overloaded or under maintenance. Usually resolves on its own. Retry after a few minutes. |
504 | Gateway Timeout | The upstream server did not respond in time. This may indicate a slow database query, an unresponsive microservice, or network issues. |
JavaScript Errors
JavaScript errors appear in the browser console (press F12 to open DevTools) and can crash your web application if unhandled. Here are the most common ones.
TypeError
TypeError: Cannot read properties of undefined (reading 'map')
This means you are trying to call a method on a value that is undefined or null. The fix is to check that the variable exists before using it. Add optional chaining (data?.map()) or a guard clause.
ReferenceError
ReferenceError: myVariable is not defined
You are referencing a variable that has not been declared in the current scope. Check for typos in variable names, ensure the variable is declared with let, const, or var, and verify the variable is accessible in the current scope.
SyntaxError
SyntaxError: Unexpected token '}'
Your code has a structural problem such as a missing bracket, extra comma, or mismatched quotes. Use our JSON Formatter if the error occurs while parsing JSON data, as it will highlight exactly where the syntax breaks.
CORS Error
Access to XMLHttpRequest has been blocked by CORS policy
Cross-Origin Resource Sharing errors occur when your frontend tries to call an API on a different domain without proper server-side headers. The server must include Access-Control-Allow-Origin in its response headers.
System Errors
Blue Screen of Death (BSOD)
Windows BSOD errors like IRQL_NOT_LESS_OR_EQUAL or PAGE_FAULT_IN_NONPAGED_AREA indicate critical kernel-level failures. Common causes include faulty RAM, corrupt drivers, or overheating. Run Windows Memory Diagnostic and update your drivers as a first step.
Segmentation Fault (Segfault)
Segmentation fault (core dumped)
This Unix/Linux error means your program tried to access memory it does not own. Common in C and C++ programs, it is typically caused by dereferencing null pointers, buffer overflows, or accessing freed memory. Use tools like Valgrind or AddressSanitizer to debug.
Kernel Panic
The macOS and Linux equivalent of a BSOD. The system halts because it detected an unrecoverable error. Check recently installed software, hardware connections, and system logs (/var/log/kern.log).
How to Debug Any Error
- Read the full error message. The line number, file path, and stack trace contain critical clues.
- Search the exact error text. Copy the error message and search online. Stack Overflow likely has an answer.
- Check what changed. Did you recently update a dependency, modify a config file, or install new software?
- Isolate the problem. Comment out code, disable plugins, or revert recent changes until the error disappears.
- Use debugging tools. Browser DevTools, IDE debuggers, log files, and our Error Message Explainer can all help you understand what went wrong.
Confused by an Error Message?
Paste any error message into our free explainer tool and get a plain-English explanation with suggested fixes.
Try Error Message Explainer