gastownhall/beads · error
failed to get wisp dependencies with metadata: %w
Error message
failed to get wisp dependencies with metadata: %w
What it means
This error wraps failure of the query 'SELECT <target> AS depends_on_id, type FROM wisp_dependencies WHERE issue_id = ?' in getWispDependenciesWithMetadata (exposed via GetDependenciesWithMetadata). It marks that dependency rows with their type metadata could not be fetched.
Source
Thrown at internal/storage/dolt/wisps.go:775
_ = rows.Close()
if err := rows.Err(); err != nil {
return nil, wrapQueryError("iterate wisp dependents", err)
}
if len(ids) == 0 {
return nil, nil
}
return s.GetIssuesByIDs(ctx, ids)
}
// getWispDependenciesWithMetadata returns wisp dependencies with metadata.
func (s *DoltStore) getWispDependenciesWithMetadata(ctx context.Context, issueID string) ([]*types.IssueWithDependencyMetadata, error) {
rows, err := s.queryContext(ctx, fmt.Sprintf(`
SELECT %s AS depends_on_id, type FROM wisp_dependencies WHERE issue_id = ?
`, issueops.DepTargetExpr), issueID)
if err != nil {
return nil, fmt.Errorf("failed to get wisp dependencies with metadata: %w", err)
}
type depMeta struct {
depID, depType string
}
var deps []depMeta
for rows.Next() {
var depID, depType string
if err := rows.Scan(&depID, &depType); err != nil {
_ = rows.Close()
return nil, wrapScanError("scan wisp dependency metadata", err)
}
deps = append(deps, depMeta{depID: depID, depType: depType})
}
_ = rows.Close()
if err := rows.Err(); err != nil {
return nil, wrapQueryError("iterate wisp dependencies", err)
}View on GitHub (pinned to 71377f2769)
Solutions
- Inspect the wrapped driver error for the precise cause (missing column vs connection).
- Run schema migration/verification (bd doctor) so wisp_dependencies has the expected columns.
- Restore Dolt connectivity and retry.
- Re-create the .beads database from sync if corruption is indicated.
Defensive patterns
Strategy: try-catch
Validate before calling
// verify column exists: SHOW COLUMNS FROM wisp_dependencies LIKE 'type'
Try / catch
meta, err := GetDependenciesWithMetadata(ctx, id)
if err != nil {
if strings.Contains(err.Error(), "Unknown column") {
return migrateSchema(ctx) // older schema: run migration then retry
}
return err
} Prevention
- Run bd doctor after upgrades to catch schema drift
- Never hand-edit the Dolt database
- Take backups before schema-affecting operations
When it happens
Trigger: Calling GetDependenciesWithMetadata on a wisp when the connection fails, wisp_dependencies is missing, or the type column is absent (older schema) making the SELECT invalid.
Common situations: Schema upgraded/created before the type column existed; Dolt server unavailable; corrupted database file.
Understand the failure class
Background: "query failed", "%w: SQL error" — wrapped database query errors in Go libraries explained — this error's family across 3 libraries.
Related errors
- failed to begin transaction: %w
- failed to recompute is_blocked: %w
- failed to commit is_blocked repairs: %w
- failed to query orphaned dependencies: %w
- row iteration error: %w
AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30).
Data as JSON: /api/errors/08c1079a62d895be.
Report an issue: GitHub.