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
Managed-path `notify` entries can only trigger systemd notifications for system-scope services. mise validates that no managed path notifies a user-scope bootstrap service, since user services are not reachable through the system notification mechanism.
Solutions
- Remove the notification from the managed path's `notify` list
- Or change the service to `scope = "system"` if a system service is intended
- Point the notification at a system-scope service instead
Example fix
# before [[tasks]] notify = ["myapp"] # myapp is scope = "user" # after: change scope [services.myapp] scope = "system"
Defensive patterns
Strategy: validation
Validate before calling
grep -rn 'notify' mise.toml | while read -r n; do check the referenced service's scope is "system"; done
Prevention
- Only add notify entries for services declared with scope = "system"
- Re-audit notify lists after changing a service's scope
- Keep notify targets and service declarations in the same config file
When it happens
Trigger: `validate_notifications` walks managed resources with `notify` entries and finds a notification naming a service present in `user_services` — e.g. `[services.myapp] scope = "user"` while a managed file declares `notify = ["myapp"]`.
Common situations: Adding a notify reference to a service without checking its scope; converting a service from system to user scope while notifications remain; shared config where the service scope differs between machines.
Understand the failure class
Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.
Related errors
- bootstrap service ' ' sets , which only applies to `scope =…
- service unit ' ' has invalid `nice` value ; expected -20…
- service unit ' ' must set a non-empty `exec_start
- timer unit ' ' cannot set service-only directive(s)
- timer unit ' ' must set at least one of `on_boot_sec`…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/5b23a23916af96e3.
Report an issue: GitHub.
Appendix: source
Thrown at src/system/services_common.rs:310
.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 {
trueView on GitHub (pinned to 533346cc37)