{"record":{"id":"7365f74d4db9ba1b","repo":"astrid-runtime/astrid","slug":"stale-fuse-service-was-cleaned-up-after-control-fa","errorCode":null,"errorMessage":"stale FUSE service was cleaned up after control failure: {error:#}","messagePattern":"stale FUSE service was cleaned up after control failure: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/astrid-storage-provider-fuse/src/main.rs","lineNumber":570,"sourceCode":"        },\n    }\n}\n\nasync fn live_control_status(\n    client: &mut AdminClient,\n    acting_principal: &astrid_core::PrincipalId,\n    record: &registry::MountRecord,\n) -> Result<ControlResponse> {\n    match call_control(\n        &record.control_path,\n        &ControlRequest::Status {\n            requested_by: acting_principal.clone(),\n        },\n    ) {\n        Ok(response) => Ok(response),\n        Err(error) => {\n            cleanup_stale_record(client, acting_principal, record).await?;\n            bail!(\"stale FUSE service was cleaned up after control failure: {error:#}\")\n        },\n    }\n}\n\nfn failure_response(code: &str, message: &str) -> ControlResponse {\n    ControlResponse::Failure {\n        code: code.to_owned(),\n        message: bounded_failure_message(message),\n    }\n}\n\nasync fn launch_service(launch: &ServiceLaunch, control_path: &Path) -> Result<ControlReady> {\n    use std::os::unix::process::CommandExt as _;\n\n    let executable = std::env::current_exe()?;\n    let mut command = tokio::process::Command::new(executable);\n    command\n        .arg(PUBLIC_SERVICE_ARGUMENT)","sourceCodeStart":552,"sourceCodeEnd":588,"githubUrl":"https://github.com/astrid-runtime/astrid/blob/affd8760f44190dbdfbec23403f4c4b642c33112/crates/astrid-storage-provider-fuse/src/main.rs#L552-L588","documentation":"Stale-service handling in live_control_status: the control-socket request to the detached FUSE service failed, so the record was cleaned up and the error reported notes the stale service was reaped — the original control error is embedded as context.","triggerScenarios":"Thrown at crates/astrid-storage-provider-fuse/src/main.rs:570 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the operation — the mount has been cleaned up, so a fresh mount will get a new service","Inspect the embedded control error for the root cause (dead service, socket removed)","Check service logs/stderr for why the detached FUSE process stopped responding"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"affd8760f44190dbdfbec23403f4c4b642c33112","analyzedAt":"2026-09-09T21:28:12.402Z","contentChangedAt":"2026-09-09T21:28:12.402Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}