{"record":{"id":"71a9ad2bec12f167","repo":"gastownhall/beads","slug":"failed-to-resolve-dependency-target-s-v","errorCode":null,"errorMessage":"Failed to resolve dependency target %s: %v","messagePattern":"Failed to resolve dependency target (.+?): (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"internal/tracker/engine.go","lineNumber":1337,"sourceCode":"\t}\n\n\tresolveIssue, err := e.dependencyIssueResolver(ctx, nil)\n\tif err != nil {\n\t\te.warn(\"Failed to build dependency resolver: %v\", err)\n\t\treturn len(deps)\n\t}\n\n\terrCount := 0\n\tfor _, dep := range deps {\n\t\tfromIssue, err := resolveIssue(ctx, dep.FromExternalID)\n\t\tif err != nil {\n\t\t\te.warn(\"Failed to resolve dependency source %s: %v\", dep.FromExternalID, err)\n\t\t\terrCount++\n\t\t\tcontinue\n\t\t}\n\t\ttoIssue, err := resolveIssue(ctx, dep.ToExternalID)\n\t\tif err != nil {\n\t\t\te.warn(\"Failed to resolve dependency target %s: %v\", dep.ToExternalID, err)\n\t\t\terrCount++\n\t\t\tcontinue\n\t\t}\n\n\t\tif fromIssue == nil || toIssue == nil {\n\t\t\tcontinue // Not found (no error) — expected if issue wasn't imported\n\t\t}\n\n\t\td := &types.Dependency{\n\t\t\tIssueID:     fromIssue.ID,\n\t\t\tDependsOnID: toIssue.ID,\n\t\t\tType:        types.DependencyType(dep.Type),\n\t\t}\n\t\tif err := e.Store.AddDependency(ctx, d, e.Actor); err != nil {\n\t\t\te.warn(\"Failed to create dependency %s -> %s: %v\", fromIssue.ID, toIssue.ID, err)\n\t\t\terrCount++\n\t\t}\n\t}","sourceCodeStart":1319,"sourceCodeEnd":1355,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/internal/tracker/engine.go#L1319-L1355","documentation":"Same as the source-side failure but for the dependency's target (DependsOn) issue: resolveIssue failed with an error while translating the To external ID to a local issue. The dependency is skipped and counted as failed; processing continues with remaining dependencies.","triggerScenarios":"resolveIssue(ctx, dep.ToExternalID) returns a non-nil error during pull dependency import — storage query error, DB lock, or transient driver failure for the target lookup.","commonSituations":"Target issue blocked from import by type/state filters while dependencies still reference it; DB contention; corrupted external_ref on the target issue's local record.","solutions":["Read the wrapped error to identify the storage-level cause.","Ensure pull filters don't exclude the dependency endpoints (pull all types/states that dependencies reference).","Re-run `bd pull` after fixing storage issues.","Verify the target issue's external_ref in the local store is intact (`bd show <id>`).","Check tracker-side that the dependency target still exists."],"exampleFix":"// before: target excluded by state filter\nbd pull --status=open\n// after: include states that dependency targets may have\nbd pull","handlingStrategy":"validation","validationCode":"// confirm dependency targets are covered by your pull scope\nfor _, dep := range deps {\n    if !inPullScope(dep.ToExternalID) {\n        log.Printf(\"dependency target %s outside pull scope\", dep.ToExternalID)\n    }\n}","typeGuard":null,"tryCatchPattern":"// retry unresolved targets on a second pass\nstats, err := engine.Sync(ctx, opts)\nif stats != nil && stats.FailedDeps > 0 && isStorageErr(err) {\n    time.Sleep(backoff)\n    engine.Sync(ctx, opts)\n}","preventionTips":["Use unfiltered pulls when dependency graph integrity matters","Keep external_ref data intact (don't hand-edit the DB)","Serialize storage writes during pull","Verify target issues exist in the tracker before mapping links"],"tags":["sync","dependencies","storage","lookup"],"backgroundTag":"dependency-endpoint-unresolved","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}