
Tested in an AI-assisted isolated Linux workspace. Not yet independently rerun on Romeo’s own host. Evidence and review policy.
01. Ask a narrower question
One request fails. Is the service down, or is the requested resource missing? This small experiment gives those two possibilities different evidence. It is a useful follow-on to the first 15 minutes incident guide: first establish impact, then choose a test that can change your explanation.
The lab starts a local Python HTTP server with a healthy release directory. That directory contains health.txt but deliberately lacks index.html. The failure is injected into a disposable directory; it is not an incident on a customer server.
02. Reproduce the experiment
Download the complete lab bundle, extract it, and inspect run_lab.py and config.json. On Linux or WSL with Python 3.10 or later, run:
python3 --version
python3 run_lab.py --config config.jsonThe script uses the standard library, chooses an available loopback port, and creates a temporary directory. It runs all three experiments in the series and asserts their outcomes. It shuts down its server and removes the temporary files when it exits. It does not run sudo or change a system service.
If loopback sockets are disallowed in your environment, the lab will fail at server startup. Use an approved disposable local environment rather than changing production firewall rules.
03. Read the captured result
GET /index.html -> 404
GET /health.txt -> 200 | release-v1: healthy
After adding missing index.html -> 200
Service restart count: 0These lines were captured from an actual run in an AI-assisted isolated Linux workspace using Python 3.12.14 on 29 September 2026 UTC (30 September in Singapore/Manila). They are not measurements from Romeo’s miniPC or a production host.
The server was reachable and capable of serving the health resource while the homepage was missing. Adding the missing file made the original request succeed without a restart. For this deliberately constructed failure, the missing resource explains the symptom.
04. What this does—and does not—prove
A 404 from a real reverse proxy can come from a different upstream, a route mismatch, or an application decision. It does not prove that every backend is healthy. Compare response headers, the requested host and path, relevant logs, and the actual critical operation before generalizing from this lab.
Python’s http.server is a teaching tool here and is not recommended as a production web server. This run exercises file serving, not Apache virtual hosts, PHP-FPM, TLS, a database, or load balancing.
Lesson from the failure: the failing URL and a nearby successful URL together were more useful than a restart. Write down which observation would disprove your current hypothesis before you act.
05. Carry the evidence into a release
Once the missing file is restored, the next question is whether the intended files will reach the next environment unchanged. Continue with artifact verification. Keep the incident and release checklist beside your notes so the observation, action, and verification stay connected.
Sources & further reading
Found a mistake or a different result? Send a correction with the article title and the environment you tested.