astrid-runtime/astrid · error

macOS did not activate an astridfs mount at {}

Error message

macOS did not activate an astridfs mount at {}

What it means

After issuing the native macOS mount command, validate_mounted_mountpoint() re-checks that the filesystem actually activated at the path via native_mount_is_active(); if the OS did not report an active astridfs mount there, the provider bails rather than claiming success on a silent mount failure.

Source

Thrown at crates/astrid-storage-provider-fskit/src/main.rs:491

    validate_mountpoint_layout(mountpoint)?;
    validate_mountpoint_ancestors(mountpoint)?;
    astrid_core::platform_fs::verify_no_redirects(mountpoint)
        .with_context(|| format!("reject redirected mountpoint {}", mountpoint.display()))?;
    astrid_core::platform_fs::validate_private_directory(mountpoint)
        .with_context(|| format!("reject unsafe mountpoint {}", mountpoint.display()))?;
    if std::fs::read_dir(mountpoint)?.next().is_some() {
        bail!("mountpoint is not empty: {}", mountpoint.display());
    }
    Ok(())
}

fn validate_mounted_mountpoint(mountpoint: &Path) -> Result<()> {
    validate_mountpoint_layout(mountpoint)?;
    validate_mountpoint_ancestors(mountpoint)?;
    astrid_core::platform_fs::verify_no_redirects(mountpoint)
        .with_context(|| format!("reject redirected mountpoint {}", mountpoint.display()))?;
    if !native_mount_is_active(mountpoint)? {
        bail!(
            "macOS did not activate an astridfs mount at {}",
            mountpoint.display()
        );
    }
    Ok(())
}

#[cfg(unix)]
fn validate_mountpoint_ancestors(mountpoint: &Path) -> Result<()> {
    use std::os::unix::fs::MetadataExt as _;

    let mut ancestor = mountpoint.parent();
    while let Some(path) = ancestor {
        let metadata = std::fs::symlink_metadata(path)
            .with_context(|| format!("inspect mountpoint ancestor {}", path.display()))?;
        let mode = metadata.mode();
        if mode & 0o022 != 0 && mode & 0o1000 == 0 {
            bail!(

View on GitHub (pinned to affd8760f4)

Solutions

  1. Check macOS logs (console/fskitd/diskimages-helper) for why the mount did not activate.
  2. Verify with `mount` that the astridfs volume is absent, fix the daemon/entitlement problem, and retry the mount.
  3. Ensure the mountpoint was not replaced or symlinked between command and validation.
  4. Retry the mount if activation is slow; if it fails deterministically, reinstall matched kernel/provider versions.
Defensive patterns

Strategy: try-catch

Try / catch

if let Err(e) = validate_mounted_mountpoint(&mountpoint) {
    if e.to_string().contains("did not activate an astridfs mount") {
        // inspect macOS logs, retry mount once after a short delay, else fail loudly
    }
}

Prevention

When it happens

Trigger: Called from mount() right after running the native mount command, and from the round-trip test; fires when the mount command exited 0 but the mount never appeared — daemon crashed after handshake, mountpoint got swapped, or activation was reversed before the check.

Common situations: fskit daemon killed by sandbox policy after accepting the mount; macOS unmounting the volume immediately due to conflicting mount flags; the mountpoint path changed between command and validation; slow activation racing the immediate validation.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of astrid-runtime/astrid@affd8760f4 (2026-09-09). Data as JSON: /api/errors/c2fd6dc3a02eb08d. Report an issue: GitHub.