{"record":{"id":"6da0bb26384823e1","repo":"gastownhall/beads","slug":"iter-dependents-query-w","errorCode":null,"errorMessage":"iter dependents: query: %w","messagePattern":"iter dependents: query: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/storage/dolt/iter_dependents.go","lineNumber":99,"sourceCode":"\tdeps, err := s.GetDependenciesWithMetadata(ctx, issueID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn storage.NewSliceIter(deps), nil\n}\n\nfunc (s *DoltStore) iterIssuesWithDepType(ctx context.Context, q string, args ...any) (storage.Iter[types.IssueWithDependencyMetadata], error) {\n\tif s.closed.Load() {\n\t\treturn nil, ErrStoreClosed\n\t}\n\tconn, err := s.db.Conn(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"iter dependents: acquire conn: %w\", err)\n\t}\n\trows, err := conn.QueryContext(ctx, q, args...)\n\tif err != nil {\n\t\t_ = conn.Close()\n\t\treturn nil, fmt.Errorf(\"iter dependents: query: %w\", err)\n\t}\n\treturn &doltDependentsIter{s: s, conn: conn, rows: rows}, nil\n}\n\nfunc (it *doltDependentsIter) Next(ctx context.Context) bool {\n\tif it.err != nil || it.closed {\n\t\treturn false\n\t}\n\tif err := ctx.Err(); err != nil {\n\t\tit.err = err\n\t\treturn false\n\t}\n\tif !it.rows.Next() {\n\t\tit.err = it.rows.Err()\n\t\treturn false\n\t}\n\tiss, depType, err := scanIssueWithDepTypeFrom(it.rows)\n\tif err != nil {","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/internal/storage/dolt/iter_dependents.go#L81-L117","documentation":"After acquiring a connection, iterIssuesWithDepType runs the dependents query with conn.QueryContext. This error wraps a failure of that query execution — SQL error, missing/corrupt dependency tables, bad query args, or connection failure — and the connection is closed before returning. It happens before any row iteration begins.","triggerScenarios":"Calling IterDependentsWithMetadata when the underlying dependents SQL (join over issues/dependencies tables) fails: malformed dependency table schema, SQL syntax/type error in the composed query, cancelled context during query start, or the freshly acquired connection failing on first use.","commonSituations":"Databases restored from old exports missing dependency tables/columns; driver/server version mismatch rejecting SQL features used in the query; context deadlines too short for large dependency graphs.","solutions":["Read the wrapped SQL error; if it names a missing table/column, run the beads schema migration.","Verify the argument (issue/prefix ID) is well-formed — a type or format mismatch surfaces here.","Retry with a longer context deadline if the failure is a timeout on a large dependency graph.","Check Dolt server health and driver/server version compatibility; restart or upgrade as needed."],"exampleFix":"// before\nrows, err := conn.QueryContext(ctx, q, args...)\nif err != nil {\n    _ = conn.Close()\n    return nil, fmt.Errorf(\"iter dependents: query: %w\", err)\n}\n// after (validate schema prerequisites first)\nvar n int\nif err := s.db.QueryRowContext(ctx, \"SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 'dependencies'\").Scan(&n); err == nil && n == 0 {\n    return nil, fmt.Errorf(\"iter dependents: dependencies table missing; run schema migration\")\n}\nrows, err := conn.QueryContext(ctx, q, args...)\nif err != nil {\n    _ = conn.Close()\n    return nil, fmt.Errorf(\"iter dependents: query: %w\", err)\n}","handlingStrategy":"try-catch","validationCode":"var n int\nif err := db.QueryRow(\"SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 'dependencies'\").Scan(&n); err != nil || n == 0 {\n    return fmt.Errorf(\"dependencies table missing; run schema migration\")\n}","typeGuard":"func isDependentsQueryErr(err error) bool {\n    return err != nil && strings.Contains(err.Error(), \"iter dependents: query\")\n}","tryCatchPattern":"it, err := store.IterDependentsWithMetadata(ctx, issueID)\nif err != nil {\n    if isDependentsQueryErr(err) {\n        log.Printf(\"dependents query failed (check schema/migration): %v\", errors.Unwrap(err))\n        return fmt.Errorf(\"retry after schema check: %w\", err)\n    }\n    return err\n}\ndefer it.Close()","preventionTips":["Run schema migrations after beads upgrades and database restores","Pass well-formed issue IDs/prefixes to dependency queries","Use generous context deadlines for large dependency graphs","Keep Dolt driver and server versions compatible"],"tags":["database","sql","query","dependents"],"backgroundTag":"dependents-query-failed","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}