A set_jet_amplitude failure while creating the internal stream marked the Simulation failed, but the public stream property still retried cuda.Stream(). Guard it like the other device-touching methods and add a regression test (no retry, close still retryable). Lifecycle wording now names the guarded device-touching methods; cached readers and host staging stay callable. compatibility.md records the caller-visible fail-closed change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>