Repository source: docs/plans/public_busy_error_message_fix_plan.md
Public Busy Error Message Fix Plan
Problem
The execution-lock timeout page currently exposes implementation details:
it says the site is blocked by a write or read-model rebuild
it prints the raw exception message
the exception message includes an absolute server path such as
/home/dh_zsagad/v3/state/cache/forum-rewrite.lock
For public traffic, this should read like a temporary site condition and stay in the zenmemes voice.
Plan
Replace the public lock-timeout copy in
FrontController::renderBusyError()with a short joke-style message that does not mention writes, read models, locks, rebuilds, exceptions, or file paths.Stop passing the raw lock exception message into the public busy template. Keep the original exception text available only to server logs if logging is added or already present nearby.
Update
LocalAppSmokeTest::testFrontControllerShowsBusyPageForExecutionLockTimeout()so it asserts the friendly busy page is shown and explicitly rejects leaked internals such asTimed out waiting for execution lock,forum-rewrite.lock,/home/,read-model, andrebuild.Keep the HTTP status as
503so clients and caches still treat this as temporary unavailability.Run the local PHP smoke test suite, or at minimum
tests/LocalAppSmokeTest.php, to confirm the busy response still routes correctly and no internal details remain in the rendered HTML.