Symptoms
isolation.anomalypages. A query scoped to one workspace returned a row owned by another, and the log line names the operation, the scope and the foreign owners.asobeast_isolation_anomaliesis above zero. It should never leave zero.- A customer reports seeing an app, keyword or ranking that is not theirs.
Triage
1
Preserve the evidence first
Copy the anomaly log lines somewhere durable before restarting anything. They carry the operation, the workspace in scope, the foreign owners and the correlation id. The counter is in process and a restart clears it.
2
Find the request behind it
Search the logs for that
correlationId. It gives you the route, the workspace, the time and every job the request spawned.3
Decide whether data actually left
A row that crossed a scope inside the process is a defect. A row that reached an HTTP response is a disclosure. The route and the status in the same correlation trail tell you which.
Containment
- Suspend the receiving workspace if data reached a response, with a written reason. It refuses every write and every on demand action immediately.
- Revoke that workspace’s API tokens if the path was the API or the remote MCP endpoint.
- Stop any deploy in progress. Do not ship a fix that has not been reasoned about.
-
Confirm the policies are still in place, because a missing policy is the only way most of these can happen:
- Check that migrations did not leave a table without a policy. The suite asserts that every table is classified as tenant owned, shared or operator only, and a new table with no classification fails it.
Recovery
- Fix the defect and add a case to the isolation suite that fails for the exact reported symptom before the fix and passes after.
- Verify with a two workspace fixture that the path is closed, not merely unreachable.
- Deploy, then confirm
asobeast_isolation_anomaliesstays at zero across a full daily cycle. - Lift the suspension and record why in the support audit trail.
- Write the timeline down the same day, while it is exact.
Who to tell
- The affected customers, both sides, within hours. Say what was exposed, to whom, for how long, and what has changed. Name the data, not a category.
- Your data protection contact immediately. Regulatory notification clocks start at awareness, not at resolution.
- Everyone else, in a public post, once the affected customers have been told first.
- Nobody at all is not an option here, even when the exposure was one row and one customer.