jdx/mise · error

managed path '{}' notifies user-scope bootstrap service '{}'

Error message

managed path '{}' notifies user-scope bootstrap service '{}'; notifications apply to system services only

What it means

validate_notifications checks that every managed path's `notify` list references only configured system-scope services. If a path notifies a service that is configured but has scope = "user", mise bails because file notifications only apply to system services.

Source

Thrown at src/system/services_common.rs:304

        .iter()
        .map(|service| service.name.as_str())
        .collect::<IndexSet<_>>();
    for (resource, notification) in files
        .iter()
        .flat_map(|file| {
            file.notify
                .iter()
                .map(move |notification| (file.path.as_path(), notification))
        })
        .chain(directories.iter().flat_map(|directory| {
            directory
                .notify
                .iter()
                .map(move |notification| (directory.path.as_path(), notification))
        }))
    {
        if user_services.iter().any(|name| name == notification) {
            bail!(
                "managed path '{}' notifies user-scope bootstrap service '{}'; notifications apply to system services only",
                resource.display(),
                notification
            );
        }
        if !configured.contains(notification.as_str()) {
            bail!(
                "managed path '{}' notifies unconfigured bootstrap service '{}'",
                resource.display(),
                notification
            );
        }
    }
    Ok(())
}

fn default_true() -> bool {
    true

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Remove the user service from the notify list
  2. Convert the target service to `scope = "system"` if it should react to path changes
  3. Drop the notify entry and restart the user service manually or via user-level tooling

Example fix

// before
notify = ["my-user-service"]

// after
notify = []
Defensive patterns

Strategy: validation

Validate before calling

for svc in notify_list {
    if user_scope_services.contains(svc) {
        eprintln!("{svc} is user-scope; notify only supports system services");
    }
}

Prevention

When it happens

Trigger: A managed directory/file config sets `notify = ["myservice"]` and myservice exists among user-scope bootstrap services; detected while validating notifications after composing declarations.

Common situations: Wiring a watched path to a user service (e.g. a per-user agent) expecting auto-restart; misremembering that notify only works for system services.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/5b23a23916af96e3. Report an issue: GitHub.