{"record":{"id":"2feab84f27f722c3","repo":"spacedriveapp/spacedrive","slug":"networking-service-not-available-2feab8","errorCode":null,"errorMessage":"Networking service not available","messagePattern":"Networking service not available","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"core/src/ops/files/delete/strategy.rs","lineNumber":381,"sourceCode":"\t\t\t\t.await?;\n\t\t\tall_results.extend(results);\n\t\t}\n\n\t\tOk(all_results)\n\t}\n}\n\nimpl RemoteDeleteStrategy {\n\tasync fn delete_on_device(\n\t\t&self,\n\t\tctx: &JobContext<'_>,\n\t\tdevice_id: Uuid,\n\t\tpaths: &[SdPath],\n\t\tmode: DeleteMode,\n\t) -> Result<Vec<DeleteResult>> {\n\t\tlet networking = ctx\n\t\t\t.networking_service()\n\t\t\t.ok_or_else(|| anyhow::anyhow!(\"Networking service not available\"))?;\n\n\t\tlet request_id = Uuid::new_v4();\n\n\t\t// Create delete request\n\t\tlet request = FileDeleteMessage::Request {\n\t\t\tpaths: paths.to_vec(),\n\t\t\tmode,\n\t\t\trequest_id,\n\t\t};\n\n\t\t// Serialize request\n\t\tlet request_data = rmp_serde::to_vec(&request)?;\n\n\t\tctx.log(format!(\n\t\t\t\"Sending delete request to device {} for {} paths\",\n\t\t\tdevice_id,\n\t\t\tpaths.len()\n\t\t));","sourceCodeStart":363,"sourceCodeEnd":399,"githubUrl":"https://github.com/spacedriveapp/spacedrive/blob/6dfeccf2113039e35f2ce735f945e70dc3e4ea45/core/src/ops/files/delete/strategy.rs#L363-L399","documentation":"RemoteDeleteStrategy::delete_on_device needs the networking service to send a FileDeleteMessage to another device; ctx.networking_service() returned None. Remote deletion is impossible in this state and the job fails before the request is even serialized. Same root cause as the copy-path variant: the JobContext has no networking service registered.","triggerScenarios":"Deleting paths that live on another device while networking is unavailable - daemon started with networking disabled or failed to initialize, or a JobContext built manually in tests or tooling.","commonSituations":"Offline or single-device daemon modes, service initialization failures at startup, integration tests with minimal contexts.","solutions":["Check daemon startup logs for networking service initialization errors","Restart sd-daemon so the networking service is re-registered","Pre-flight remote deletes with ctx.networking_service().is_some() and report clearly","Route genuinely local paths through the local delete strategy instead"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Only dispatch remote deletes when the networking service is present.\nif paths.iter().any(|p| !p.is_local()) && ctx.networking_service().is_none() {\n    return Err(anyhow::anyhow!(\n        \"Cannot delete remote paths: networking service is not running\"\n    ));\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Verify service availability before enqueuing remote operations","Surface service state in the UI so offline mode is visible"],"tags":["network","configuration","delete","daemon"],"backgroundTag":null,"analyzedSha":"6dfeccf2113039e35f2ce735f945e70dc3e4ea45","analyzedAt":"2026-08-16T11:26:17.074Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}