xai-org/grok-build · error · io::Error
session persistence actor stopped before flush acknowledgeme
Error message
session persistence actor stopped before flush acknowledgement
What it means
Error "session persistence actor stopped before flush acknowledgement" thrown in xai-org/grok-build.
Source
Thrown at crates/codegen/xai-grok-shell/src/session/acp_session_impl/updates.rs:546
skip_all,
fields(session_id = %self.session_info.id.0)
)]
pub(super) async fn flush_to_disk(&self) -> std::io::Result<()> {
if let Err(e) = crate::session::replay_events::flush_replay_actor(&self.event_tx).await {
tracing::warn!(?e, "flush_replay_actor failed");
}
let (tx, rx) = tokio::sync::oneshot::channel();
if self
.notifications
.persistence_tx
.send(PersistenceMsg::FlushAndAck { respond_to: tx })
.is_err()
{
return Ok(());
}
match rx.await {
Ok(result) => result,
Err(_) => Err(std::io::Error::new(
std::io::ErrorKind::BrokenPipe,
"session persistence actor stopped before flush acknowledgement",
)),
}
}
/// Extracts the update type name and relevant parameters for logging
fn extract_update_info(
update: &acp::SessionUpdate,
) -> (Option<String>, Option<serde_json::Value>) {
match update {
acp::SessionUpdate::UserMessageChunk(_) => (Some("UserMessageChunk".to_string()), None),
acp::SessionUpdate::AgentMessageChunk(_) => {
(Some("AgentMessageChunk".to_string()), None)
}
acp::SessionUpdate::AgentThoughtChunk(_) => {
(Some("AgentThoughtChunk".to_string()), None)
}
acp::SessionUpdate::ToolCall(tool_call) => (View on GitHub (pinned to bc7f02eddd)
When it happens
Trigger: Thrown at crates/codegen/xai-grok-shell/src/session/acp_session_impl/updates.rs:546 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31).
Data as JSON: /api/errors/d94338c1f494fd8b.
Report an issue: GitHub.