gastownhall/beads · error
proxied-server provider %T does not offer the neighbor-query
Error message
proxied-server provider %T does not offer the neighbor-query surface
What it means
proxiedIssueRelations checks that the proxied-server UOW provider implements uow.RelationsSource before handing back the neighbor-query surface for `bd dep list`. If the provider type lacks it, this error names the type. It protects list operations from providers that cannot enumerate issue relations.
Source
Thrown at cmd/bd/dep_proxied_server.go:48
if uowProvider == nil {
return nil, errors.New("proxied-server UOW provider not initialized")
}
src, ok := uowProvider.(uow.DependencyEditorSource)
if !ok {
return nil, fmt.Errorf("proxied-server provider %T does not offer the dependency-edge surface", uowProvider)
}
return src.DependencyEditor()
}
// proxiedIssueRelations hands back the guarded neighbor-query surface for the
// proxied-server provider, through the provider's own capability accessor.
func proxiedIssueRelations() (issueops.Relations, error) {
if uowProvider == nil {
return nil, errors.New("proxied-server UOW provider not initialized")
}
src, ok := uowProvider.(uow.RelationsSource)
if !ok {
return nil, fmt.Errorf("proxied-server provider %T does not offer the neighbor-query surface", uowProvider)
}
return src.IssueRelations()
}
// proxiedEdgeReader hands back the guarded stored-edge surface for the
// proxied-server provider, through the provider's own capability accessor.
func proxiedEdgeReader() (issueops.EdgeReader, error) {
if uowProvider == nil {
return nil, errors.New("proxied-server UOW provider not initialized")
}
src, ok := uowProvider.(uow.EdgeReaderSource)
if !ok {
return nil, fmt.Errorf("proxied-server provider %T does not offer the stored-edge surface", uowProvider)
}
return src.EdgeReader()
}
// addDependencyEdgesProxied asserts edges through the DependencyEditor role.View on GitHub (pinned to 71377f2769)
Solutions
- Upgrade the bd server daemon and restart so RelationsSource is available.
- Check version parity between client and server (bd --version; bd doctor).
- If using a custom provider, implement uow.RelationsSource (IssueRelations() accessor).
- Query dependencies directly against the local database (non-proxied route) as an interim workaround.
Example fix
// before: minimal provider without relations // proxied-server provider *server.MinimalProvider does not offer the neighbor-query surface // after: full provider via server restart bd server stop && bd server start # provider implements uow.RelationsSource
Defensive patterns
Strategy: type-guard
Validate before calling
if _, ok := uowProvider.(uow.RelationsSource); !ok {
fmt.Fprintln(os.Stderr, "server lacks neighbor-query surface; upgrade bd server")
os.Exit(1)
} Type guard
func hasRelationsSource(p any) bool {
_, ok := p.(uow.RelationsSource)
return ok
} Try / catch
rel, err := proxiedIssueRelations()
if err != nil {
if strings.Contains(err.Error(), "neighbor-query surface") {
return fmt.Errorf("`bd dep list` unavailable via this server; upgrade server or query locally: %w", err)
}
return err
} Prevention
- Upgrade and restart the server daemon before using proxied dep list in scripts.
- Compile-time assert custom providers implement uow.RelationsSource.
- Fall back to local database queries when the proxied provider is minimal.
- Monitor bd release notes for new capability surfaces and gate tooling on them.
When it happens
Trigger: Running `bd dep list` via the proxied-server route (runDepListProxiedServer) when the provider's concrete type does not implement RelationsSource.
Common situations: Older server daemon predating the relations surface; a minimal/custom provider implementing only edge writes but not neighbor queries; wrong provider wired in embedded/proxied configuration.
Related errors
- proxied-server provider %T does not offer the dependency-edg
- proxied-server provider %T does not offer the cycle-report s
- load blocking info: %w
- no store is open for this workspace
- no absolute native user directory is available
AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30).
Data as JSON: /api/errors/00a714fec9d0b9f5.
Report an issue: GitHub.