astrid-runtime/astrid · error
FUSE service launch exceeds limit
Error message
FUSE service launch exceeds limit
What it means
Request-size guard in run_public_service: the FUSE provider service reads stdin with a take(MAX_REQUEST_BYTES + 1) limit and found more bytes than MAX_REQUEST_BYTES, meaning the launch request (ServiceLaunch JSON) exceeds the protocol's size cap. This indicates a malformed or hostile request from the host process, so the service refuses to launch rather than parsing oversized input.
Solutions
- Reduce the launch request size — check for bloated tokens or payload fields
- Fix the parent process that is sending an oversized launch envelope
- If legitimately large inputs are needed, raise MAX_REQUEST_BYTES deliberately
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/astrid-storage-provider-fuse/src/main.rs:458 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of astrid-runtime/astrid@affd8760f4 (2026-09-09).
Data as JSON: /api/errors/fa46f880b3fa4115.
Report an issue: GitHub.
Appendix: source
Thrown at crates/astrid-storage-provider-fuse/src/main.rs:458
.await?,
)?;
}
}
registry::remove_record(&record.mount_id)?;
cleanup_mountpoint(&record.mountpoint, record.auto_created_mountpoint)?;
Ok(StorageProviderSuccessV1::Unmounted {
mount_id: record.mount_id,
})
}
async fn run_public_service() -> Result<()> {
let mut bytes = Vec::new();
std::io::stdin()
.lock()
.take(MAX_REQUEST_BYTES + 1)
.read_to_end(&mut bytes)?;
if bytes.len() as u64 > MAX_REQUEST_BYTES {
bail!("FUSE service launch exceeds limit");
}
let launch: ServiceLaunch = serde_json::from_slice(&bytes)?;
let lease = launch.lease.clone();
let control_path = registry::control_path(&lease.mount_id)?;
let listener = bind_control_listener(&control_path)?;
let mut session = match filesystem::start_session(lease.clone(), &launch.mountpoint) {
Ok(session) => Some(session),
Err(error) => {
let _ = cleanup_service_artifacts(
&control_path,
&launch.mountpoint,
launch.auto_created_mountpoint,
);
return Err(error);
},
};
let stderr_sink = std::fs::OpenOptions::new()
.write(true)View on GitHub (pinned to affd8760f4)