dagger/dagger · error
dependent service exited
Error message
dependent service exited
What it means
Sentinel error used by stopDueToDependencyExit when a service's dependency exits without a specific error: the service is deliberately stopped because something it depends on went away, and the stop is attributed to this cause via setServiceErr.
Source
Thrown at core/service.go:985
sig = syscall.SIGKILL
}
err := signalSvc(ctx, sig)
if err != nil {
return err
}
select {
case <-ctx.Done():
slog.Info("service stop interrupted", "err", ctx.Err())
return ctx.Err()
case <-exited:
slog.Info("service exited in stop", "err", exitErr)
return nil
}
}
stopDueToDependencyExit := func(depErr error) error {
if depErr == nil {
depErr = fmt.Errorf("dependent service exited")
}
setServiceErr(depErr)
if err := stopSvc(context.Background(), true); err != nil {
return errors.Join(depErr, err)
}
return depErr
}
// If a dependency exits while exit propagation is suppressed (e.g. during a
// service terminal), remember it and stop this service when suppression lifts.
var pendingDependencyErr error
var havePendingDependencyErr bool
deferDependencyExitIfSuppressed := func(depErr error) bool {
if !running.isDependencyExitPropagationSuppressed() {
return false
}
pendingDependencyErr = depErr
havePendingDependencyErr = trueView on GitHub (pinned to 82ba2681db)
Solutions
- Investigate why the upstream dependent service exited
- Check dependent service logs for its own exit cause
- Restart the service graph once dependencies are healthy
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at core/service.go:985 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05).
Data as JSON: /api/errors/4548d5ea9d3ae012.
Report an issue: GitHub.