AdguardTeam/AdGuardHome · error
evaluating executable symlinks: %v
Error message
evaluating executable symlinks: %v
What it means
During the macOS pre-start check, filepath.EvalSymlinks on the executable path failed, so the code can't resolve the real location of the binary to compare against /Applications. Wrapped with %v, so the cause is embedded as text only.
Source
Thrown at internal/aghos/service_darwin.go:24
"fmt"
"os"
"path/filepath"
"strings"
"github.com/AdguardTeam/golibs/log"
)
// preCheckActionStart performs the service start action pre-check. It warns
// user that the service should be installed into Applications directory.
func preCheckActionStart() (err error) {
exe, err := os.Executable()
if err != nil {
return fmt.Errorf("getting executable path: %v", err)
}
exe, err = filepath.EvalSymlinks(exe)
if err != nil {
return fmt.Errorf("evaluating executable symlinks: %v", err)
}
if !strings.HasPrefix(exe, "/Applications/") {
log.Info("warning: service must be started from within the /Applications directory")
}
return err
}
View on GitHub (pinned to b41aefbe51)
Solutions
- Point your launcher at the real binary inside /Applications/AdGuardHome.app (or copy it there)
- Remove or fix dangling symlinks in the launch path: ls -l to inspect each component
- Clear quarantine attributes if Gatekeeper translocation is involved: xattr -dr com.apple.quarantine /Applications/AdGuardHome.app
Defensive patterns
Strategy: validation
Validate before calling
exe, err := os.Executable()
if err == nil {
if _, err := filepath.EvalSymlinks(exe); err != nil { /* fix symlinks before starting */ }
} Prevention
- Launch from real paths inside /Applications rather than symlinks
- Remove dangling symlinks from launch chains
- Clear quarantine attributes on downloaded app bundles
When it happens
Trigger: Starting the service on macOS when the executable path contains a symlink whose target no longer exists, or a path component is unreadable/permission-denied, causing EvalSymlinks to error (e.g. ENOENT on a dangling symlink).
Common situations: Launching via a symlink in ~/bin pointing to a moved/deleted AdGuardHome.app; translocated/quarantined app bundles; permission-restricted directories in the path.
Related errors
AI-assisted analysis of AdguardTeam/AdGuardHome@b41aefbe51 (2026-08-27).
Data as JSON: /api/errors/eb9cc7d0b4f8ce1d.
Report an issue: GitHub.