Build log · Phase 195

Two Doors, Both Assumed Open

September 4, 2026 · 2 min read · kritchie

Testing this feature against a real account for the first time, rather than a sandbox built to exercise it, turned up two places where a reasonable assumption was wrong. This is the kind of thing that only shows up once something real gets in the way.

A locked folder, and the whole walk stopped

The first assumption was that a full walk through an account’s folders would simply finish. Every real account has at least one folder locked down more tightly than the rest, which is correct. What was wrong was the behavior on reaching it: instead of stepping around, the walk stopped and reported back as if it had finished, with no distinction between “found nothing” and “ended early”.

That is a worse failure than a crash, because it looks like success. The fix was small: step around locked folders and report incomplete walks explicitly. Finding that it was needed took running the real thing against a real account.

The second door, right behind the first

With that fixed, the scan hit a second problem. Setting a flagged file aside safely means writing to a new location, and the process doing the work lacked the access to do so. The account was still protected, since it stopped serving the file to visitors either way, but the file itself was not moved. The fix follows how comparable jobs are already handled elsewhere in the system, with a narrowly scoped step for this one task rather than broader access for everything.

Stopping what is already running

While looking at what happens when an account is shut down over a finding, another gap came up: disabling the public side doesn’t stop anything already running in the background. Closing that gap also meant checking that stopping an account’s processes wouldn’t affect shared services, and it doesn’t. Now anything the account was running is stopped on suspension, and scheduled work is paused and restored automatically when the account is cleared.

The value of the awkward middle step

Neither issue would have turned up from reading the code or from the existing tests, which were built on the same assumptions as the feature. Running it against a real account between “finished” and “done” is often the least exciting step, and here it found two real issues.

Tested (2798/2798).

Phase 195 of 269The build log so far

Every phase, from the beginning →

Leave a comment

Your email address is never published. Comments are checked before they appear.