spacedriveapp/spacedrive · error · anyhow::Error

Networking service not available

Error message

Networking service not available

What it means

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.

Source

Thrown at core/src/ops/files/delete/strategy.rs:381

				.await?;
			all_results.extend(results);
		}

		Ok(all_results)
	}
}

impl RemoteDeleteStrategy {
	async fn delete_on_device(
		&self,
		ctx: &JobContext<'_>,
		device_id: Uuid,
		paths: &[SdPath],
		mode: DeleteMode,
	) -> Result<Vec<DeleteResult>> {
		let networking = ctx
			.networking_service()
			.ok_or_else(|| anyhow::anyhow!("Networking service not available"))?;

		let request_id = Uuid::new_v4();

		// Create delete request
		let request = FileDeleteMessage::Request {
			paths: paths.to_vec(),
			mode,
			request_id,
		};

		// Serialize request
		let request_data = rmp_serde::to_vec(&request)?;

		ctx.log(format!(
			"Sending delete request to device {} for {} paths",
			device_id,
			paths.len()
		));

View on GitHub (pinned to 6dfeccf211)

Solutions

  1. Check daemon startup logs for networking service initialization errors
  2. Restart sd-daemon so the networking service is re-registered
  3. Pre-flight remote deletes with ctx.networking_service().is_some() and report clearly
  4. Route genuinely local paths through the local delete strategy instead
Defensive patterns

Strategy: validation

Validate before calling

// Only dispatch remote deletes when the networking service is present.
if paths.iter().any(|p| !p.is_local()) && ctx.networking_service().is_none() {
    return Err(anyhow::anyhow!(
        "Cannot delete remote paths: networking service is not running"
    ));
}

Prevention

When it happens

Trigger: 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.

Common situations: Offline or single-device daemon modes, service initialization failures at startup, integration tests with minimal contexts.

Related errors


AI-assisted analysis of spacedriveapp/spacedrive@6dfeccf211 (2026-08-16). Data as JSON: /api/errors/2feab84f27f722c3. Report an issue: GitHub.