← All articles

engineeringmonitoring

Picking up an unfinished investigation

Save the failing request and what you ruled out, so the next session doesn’t repeat the same checks.

Consider a checkout failure. You’ve reproduced it locally with an empty delivery address, but you haven’t checked whether that’s what caused the production error. Now you need to hand the investigation to a teammate or another agent.

A note saying “address validation bug” would leave out the most useful distinction: you have a reproduction and a possible explanation, but you haven’t connected them yet.

Write down where you got to

The next person needs the failing request, the code you inspected, and the result of each check. Include attempts that ruled something out. Otherwise, they may spend their first session repeating yours.

A handoff for this example could read:

An empty address reproduces the failure locally in the checkout handler. A valid address succeeds. I haven’t matched the local failure to a production request yet. Check the affected request before changing validation.

That note gives someone a place to start. It also keeps a plausible theory from becoming an accepted cause just because it appeared in a summary.

Keep references with the note

Link to the affected request and the version of the code you inspected. A file path helps, but a path plus the revision tells the next person whether they’re looking at the same implementation.

The same applies to test output. Record the command and what it exercised. “Tests passed” leaves the reader guessing whether you checked the failing request, a nearby helper, or the entire checkout flow.

Leave one next step

In this case, the next step is to find out whether the production request contained an empty address. If it did, the local reproduction becomes useful evidence for a fix. If it didn’t, the investigation needs another explanation.

A good handoff can be short. It needs enough detail for someone to continue without asking you to reconstruct the session from memory.