{"id":"participant-cannot-self-resolve","text":"`Participant.recover()` returns a list of in-doubt transaction IDs but cannot commit or abort them; only the coordinator holds the decision, so participants remain locked until `Coordinator.recover()` re-sends it.","truth_value":"IN","source":"entries/2026/05/29/topic-2pc-blocking-problem.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{},"explanation":{"steps":[{"node":"participant-cannot-self-resolve","truth_value":"IN","reason":"premise"}]}}