diff --git a/crates/snowbound/src/protection.rs b/crates/snowbound/src/protection.rs index 28f6dd93fe9112d9bc1781cefe0718119bce527a..87c93cf06142b838243b8dfd5da7e1b78ff651a6 100644 --- a/crates/snowbound/src/protection.rs +++ b/crates/snowbound/src/protection.rs @@ -738,11 +738,14 @@ impl State { .is_some_and(|session| Arc::ptr_eq(session.section.replica(), &replica)); if open { state.persist()?; - let pending = replica.pending()?.last().map_or(0, |edit| edit.id); - if pending > through { - state.set_password(library, path, key, password); - return Ok(()); - } + } + let pending = replica.pending()?.last().map_or(0, |edit| edit.id); + if open && pending > through { + state.set_password(library, path, key, password); + return Ok(()); + } + if pending > 0 { + return Err("Edits to the section wait to be published".into()); } let stopping = state .session