Establish what is happening
Capture a failing request context
Record route, method, input shape, account or dataset class, release, timestamp, status, error type, correlation identifier, and whether a retry succeeded. Redact secrets and sensitive values while preserving structural fields. Include the user action that failed and the resulting visible state.
Group failures against successful matches
Compare failures and successes by route, payload fields, data size, time window, deployment, dependency response, and client state. Look for a shared dimension without treating correlation as proof. Mark each group confirmed, suspected, or untested, and retain the smallest useful sample.
Find the first divergent boundary
Align request admission, handler start, validation, data access, dependency calls, response creation, and client application where measurements exist. Identify the earliest interval or status difference in a failing trace. If evidence stops at one boundary, call the next layer unknown rather than inferring it.
What to carry forward
Return a scope statement naming the failing action, pattern dimensions, matched success, first observed divergence, and uncertainty. Route the next work to validation, application, data, dependency, or client handling. Stop triage when one bounded reproduction or comparison can meaningfully test the leading explanation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow