{"record":{"id":"0672882b6a93c14e","repo":"plandex-ai/plandex","slug":"error-getting-parent-project-ids-with-paths-v","errorCode":null,"errorMessage":"error getting parent project ids with paths: %v","messagePattern":"error getting parent project ids with paths: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/cli/cmd/plans.go","lineNumber":65,"sourceCode":"\n\tif archivedOnly {\n\t\tlistArchived()\n\t} else {\n\t\tlistActive()\n\t}\n}\n\nfunc listActive() {\n\terrCh := make(chan error)\n\n\tvar parentProjectIdsWithPaths [][2]string\n\tvar childProjectIdsWithPaths [][2]string\n\n\tgo func() {\n\t\tres, err := fs.GetParentProjectIdsWithPaths(auth.Current.UserId)\n\n\t\tif err != nil {\n\t\t\terrCh <- fmt.Errorf(\"error getting parent project ids with paths: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tparentProjectIdsWithPaths = res\n\t\terrCh <- nil\n\t}()\n\n\tgo func() {\n\t\tctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)\n\t\tdefer cancel()\n\n\t\tres, err := fs.GetChildProjectIdsWithPaths(ctx, auth.Current.UserId)\n\n\t\tif err != nil {\n\t\t\tlog.Println(err.Error())\n\n\t\t\tif err.Error() == \"context timeout\" {\n\t\t\t\terrCh <- nil","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/plandex-ai/plandex/blob/e2d772072efadbe41d2946d97d79be55532dbab5/app/cli/cmd/plans.go#L47-L83","documentation":"This error wraps a failure from fs.GetParentProjectIdsWithPaths(auth.Current.UserId), which enumerates parent projects (with filesystem paths) for the current user. The call runs in a goroutine during the 'plans' command; any filesystem or lookup error is reported with this message.","triggerScenarios":"GetParentProjectIdsWithPaths returns an error — e.g. the projects directory is unreadable, paths were moved/deleted, or user identity lookup fails.","commonSituations":"Project directories deleted or renamed outside the CLI, permission issues on the data directory, corrupted project index/state files.","solutions":["Verify project directories exist and are readable by the current user","Check filesystem permissions on the data/projects directory","Re-authenticate so auth.Current.UserId is correct","Rebuild/repair project state if the index is stale"],"exampleFix":"// before\nres, err := fs.GetParentProjectIdsWithPaths(auth.Current.UserId)\nif err != nil {\n    errCh <- fmt.Errorf(\"error getting parent project ids with paths: %v\", err)\n    return\n}\n// after\nres, err := fs.GetParentProjectIdsWithPaths(auth.Current.UserId)\nif err != nil {\n    if os.IsPermission(err) {\n        errCh <- fmt.Errorf(\"permission denied reading project directories: %v\", err)\n    } else {\n        errCh <- fmt.Errorf(\"error getting parent project ids with paths: %v\", err)\n    }\n    return\n}","handlingStrategy":"fallback","validationCode":"if auth.Current.UserId == \"\" {\n    return fmt.Errorf(\"not authenticated\")\n}\nif fi, err := os.Stat(projectsDir); err != nil || !fi.IsDir() {\n    return fmt.Errorf(\"projects directory missing or unreadable: %s\", projectsDir)\n}","typeGuard":null,"tryCatchPattern":"res, err := fs.GetParentProjectIdsWithPaths(auth.Current.UserId)\nif err != nil {\n    log.Warnf(\"parent projects unavailable: %v\", err)\n    res = nil // degrade gracefully\n}","preventionTips":["Don't delete/rename project dirs behind the CLI's back","Check permissions on the data directory","Re-authenticate when identity changes","Handle 'context timeout' style errors as non-fatal where appropriate"],"tags":["filesystem","cli","projects"],"backgroundTag":"filesystem-read-failed","analyzedSha":"e2d772072efadbe41d2946d97d79be55532dbab5","analyzedAt":"2026-09-05T20:56:53.631Z","contentChangedAt":"2026-09-05T20:56:53.631Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}