---
title: "HTTP Errors and Status Codes on hamletsfriends.com | Hamlet's Friends"
description: "Every HTTP status code for the files and endpoints documented here, from 301 redirects for old Wix pages to 401 on internet-status, and what each means."
url: "https://hamletsfriends.com/errors/"
locale: "en"
lastmod: "2026-10-15"
alternates:
  en: "https://hamletsfriends.com/errors/"
  x-default: "https://hamletsfriends.com/errors/"
site_index: "https://hamletsfriends.com/llms.txt"
---
# Errors

Every HTTP status code returned for the files and endpoints on the developer pages, and what each one means here.

## HTTP status codes

**Table: Status codes on hamletsfriends.com**

| Code | Name | When you see it |
| --- | --- | --- |
| 200 | OK | The page or file exists. Pages and files also answer HEAD. |
| 206 | Partial Content | You sent a Range header, for example to read the start of /llms-full.txt. |
| 301 | Moved Permanently | You asked for an old address: a page from the Wix site we replaced, such as /home or /hamlets-blog, the www host, or plain http. The Location header has the current URL. |
| 304 | Not Modified | You sent If-None-Match with the current ETag, so your copy is still good. |
| 401 | Unauthorized | /api/internet-status from outside the finca's network without a valid x-status-password header. |
| 404 | Not Found | The path does not exist. That includes the Markdown twin of a page kept out of search, the /es/ or /de/ address of an English-only page, and any method other than GET on /api/internet-status. |
| 405 | Method Not Allowed | You sent POST, PUT or DELETE to a page or file. Everything here is read-only. |
| 503 | Service Unavailable | /api/internet-status could not read the network equipment and has no earlier snapshot to return. Try again in five minutes. |

## Error bodies

Only /api/internet-status returns an application error, as JSON with one error field. A 404 anywhere else returns the site's HTML error page.

**unauthorized**

Sent with 401. The request came from outside the finca's network without the guest password.

**unavailable**

Sent with 503. The network equipment did not answer and no earlier snapshot exists.

curl

```bash
curl -sIL https://hamletsfriends.com/hamlets-blog
```

JavaScript

```javascript
// fetch follows the 301 by itself; response.url is where it ended up.
const response = await fetch('https://hamletsfriends.com/hamlets-blog');
console.log(response.status, response.url); // 200 https://hamletsfriends.com/blog/
```

Response

```http
HTTP/2 301
location: https://hamletsfriends.com/blog/

HTTP/2 200
content-type: text/html
```
