{"record":{"id":"514d166ff175ed29","repo":"tailscale/tailscale","slug":"res-status","errorCode":null,"errorMessage":"res.Status","messagePattern":"res\\.Status","errorType":"http","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/local/local.go","lineNumber":490,"sourceCode":"\treturn err\n}\n\n// TailDaemonLogs returns a stream the Tailscale daemon's logs as they arrive.\n// Close the context to stop the stream.\n//\n// API maturity: this method is not considered a stable API and is\n// subject to change between releases.\nfunc (lc *Client) TailDaemonLogs(ctx context.Context) (io.Reader, error) {\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", \"http://\"+apitype.LocalAPIHost+\"/localapi/v0/logtap\", nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tres, err := lc.doLocalRequestNiceError(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif res.StatusCode != 200 {\n\t\treturn nil, errors.New(res.Status)\n\t}\n\treturn res.Body, nil\n}\n\n// EventBusGraph returns a graph of active publishers and subscribers in the eventbus\n// as a [eventbus.DebugTopics].\n//\n// API maturity: this method is not considered a stable API and is\n// subject to change between releases.\nfunc (lc *Client) EventBusGraph(ctx context.Context) ([]byte, error) {\n\treturn lc.get200(ctx, \"/localapi/v0/debug-bus-graph\")\n}\n\n// EventBusQueues returns a JSON snapshot of event bus queue depths per client.\n//\n// API maturity: this method is not considered a stable API and is\n// subject to change between releases.\nfunc (lc *Client) EventBusQueues(ctx context.Context) ([]byte, error) {","sourceCodeStart":472,"sourceCodeEnd":508,"githubUrl":"https://github.com/tailscale/tailscale/blob/cfe32b8be6a33f8e24fbc369cbfbf7c729d9e042/client/local/local.go#L472-L508","documentation":"bootWholeDisks calls dfRootDevice to learn which device (e.g. \"disk3s1s1\") backs the root mount, and wraps its failure with this message. dfRootDevice fails when `df -P /` exits non-zero (the raw exec.Error/ExitError is returned unwrapped) or when its output cannot be parsed (see the \"unexpected df output/line\" errors).","triggerScenarios":"`df -P /` cannot execute (df not in PATH, permission denied) or exits non-zero (unknown filesystem error, df bug), while `tailscale configure flash-appliance` tries to exclude boot disks during macOS auto-detection.","commonSituations":"Sandboxed processes (Seatbelt profiles) denying exec of /bin/df; containers/VMs on macOS where the root mount confuses df; PATH manipulation replacing df; unusual fstab/auto_master setups making df error on '/'.","solutions":["Run `/bin/df -P /` yourself in that same context; if it errors, fix the environment (PATH, sandbox profile) that breaks it.","Use absolute-system PATH: export PATH=\"/usr/bin:/bin:/usr/sbin:/sbin:$PATH\".","Bypass discovery with `--disk /dev/diskN`.","If df works in Terminal but not under your launcher, launch the CLI from a normal Terminal session instead."],"exampleFix":"// before\n$ sandbox-exec -p '(deny process-exec)' tailscale configure flash-appliance\nError: locating root device: fork/exec /bin/df: Operation not permitted\n\n// after: allow exec or run unsandboxed\n$ tailscale configure flash-appliance\n# or explicit target:\n$ tailscale configure flash-appliance --disk /dev/disk4","handlingStrategy":"validation","validationCode":"// verify df runs and yields a device before starting discovery\nout, err := exec.Command(\"/bin/df\", \"-P\", \"/\").Output()\nif err != nil {\n    return fmt.Errorf(\"df -P / failed: %w\", err)\n}\nlines := strings.Split(strings.TrimSpace(string(out)), \"\\n\")\nif len(lines) < 2 || !strings.HasPrefix(strings.Fields(lines[1])[0], \"/dev/\") {\n    return fmt.Errorf(\"df -P / output not usable: %q\", out)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Call the stock /bin/df by absolute path in wrappers and CI.","Don't run the CLI under sandbox profiles that deny process-exec.","In containers/VMs on macOS, prefer --disk since df output may not reflect real disks."],"tags":["go","tailscale","macos","df","exec","flash-appliance","root-device"],"backgroundTag":null,"analyzedSha":"cfe32b8be6a33f8e24fbc369cbfbf7c729d9e042","analyzedAt":"2026-08-15T19:58:31.583Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}