gastownhall/beads · error
dbproxy: unverified-process inspection is not implemented on
Error message
dbproxy: unverified-process inspection is not implemented on %s
What it means
errUnverifiedUnsupported is a sentinel returned by every unverified-process operation on platforms with no implementation (only darwin, linux, windows are implemented). It mirrors procid.ErrUnsupported: instead of guessing a PID's identity on an unknown GOOS, the force-stop machinery fails cleanly. Callers can detect it with errors.Is.
Source
Thrown at internal/storage/dbproxy/proxy/unverified_process_unsupported.go:13
//go:build !linux && !darwin && !windows
package proxy
import (
"fmt"
"runtime"
)
// errUnverifiedUnsupported mirrors procid.ErrUnsupported for the force-stop
// path: on platforms with no process-inspection implementation the proxy
// machinery refuses cleanly rather than guessing at a PID's identity.
var errUnverifiedUnsupported = fmt.Errorf(
"dbproxy: unverified-process inspection is not implemented on %s", runtime.GOOS)
type unverifiedProcess struct{}
func openUnverifiedProcess(pid int) (proc *unverifiedProcess, gone bool, err error) {
return nil, false, errUnverifiedUnsupported
}
func (p *unverifiedProcess) executableBasename() (basename string, gone bool, err error) {
return "", false, errUnverifiedUnsupported
}
func (p *unverifiedProcess) commandLineContains(needle string) (matched bool, gone bool, err error) {
return false, false, errUnverifiedUnsupported
}
func (p *unverifiedProcess) kill() (gone bool, err error) {
return false, errUnverifiedUnsupportedView on GitHub (pinned to 71377f2769)
Solutions
- Run bd on a supported platform (darwin, linux, or windows) for daemon stop operations.
- Manually kill the daemon PID and remove the pidfile when on an unsupported platform.
- File/await an upstream port of unverified_process_<goos>.go for your platform.
- Guard automation to skip dbproxy force-stop on unsupported GOOS values (runtime.GOOS check).
Example fix
// before: force-stop on freebsd
if runtime.GOOS == "freebsd" { proxy.Stop() }
// after
goos := runtime.GOOS
if goos == "darwin" || goos == "linux" || goos == "windows" {
proxy.Stop()
} else {
// manual cleanup: kill recorded pid, remove pidfile
} Defensive patterns
Strategy: fallback
Validate before calling
switch runtime.GOOS {
case "darwin", "linux", "windows":
// unverified-process force-stop supported
default:
// unsupported: plan manual pidfile cleanup instead
} Try / catch
proc, gone, err := openUnverifiedProcess(pid)
if err != nil {
if errors.Is(err, errUnverifiedUnsupported) {
// fall back to manual cleanup: read pidfile, verify PID, kill by hand
return manualCleanup(pidfilePath)
}
return err
} Prevention
- Run bd daemon workflows only on darwin, linux, or windows.
- In cross-platform automation, feature-detect support via runtime.GOOS before invoking force-stop.
- On unsupported platforms, document and script the manual cleanup path (kill PID + remove pidfile).
- Keep CI matrices aligned with supported GOOS values.
When it happens
Trigger: openUnverifiedProcess / executableBasename / commandLineContains / kill / exited are invoked on a GOOS without a build-tagged implementation, e.g. building the proxy force-stop path for freebsd, openbsd, or plan9.
Common situations: Cross-compiling bd for a niche platform and then triggering daemon stop/cleanup; running in an environment where an unsupported GOOS was assumed to work; CI matrices testing unimplemented platforms.
Related errors
- no store is open for this workspace
- not found
- no absolute native user directory is available
- ExternalDoltConfig: set either Socket OR (Host, Port), not b
- ExternalDoltConfig: must set Socket or (Host, Port)
AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30).
Data as JSON: /api/errors/ee4d5fb8f2605a29.
Report an issue: GitHub.