{"record":{"id":"2ee338e074054c37","repo":"plandex-ai/plandex","slug":"error-getting-plan-config-v","errorCode":null,"errorMessage":"error getting plan config: %v","messagePattern":"error getting plan config: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/cli/cmd/new.go","lineNumber":64,"sourceCode":"\n\tvar planId string\n\tvar config *shared.PlanConfig\n\n\tgo func() {\n\t\tres, apiErr := api.Client.CreatePlan(lib.CurrentProjectId, shared.CreatePlanRequest{Name: name})\n\t\tif apiErr != nil {\n\t\t\terrCh <- fmt.Errorf(\"error creating plan: %v\", apiErr.Msg)\n\t\t\treturn\n\t\t}\n\t\tplanId = res.Id\n\t\terrCh <- nil\n\t}()\n\n\tgo func() {\n\t\tvar apiErr *shared.ApiError\n\t\tconfig, apiErr = api.Client.GetDefaultPlanConfig()\n\t\tif apiErr != nil {\n\t\t\terrCh <- fmt.Errorf(\"error getting plan config: %v\", apiErr.Msg)\n\t\t\treturn\n\t\t}\n\t\terrCh <- nil\n\t}()\n\n\tfor i := 0; i < 2; i++ {\n\t\terr := <-errCh\n\t\tif err != nil {\n\t\t\tterm.OutputErrorAndExit(\"Error: %v\", err)\n\t\t}\n\t}\n\n\terr := lib.WriteCurrentPlan(planId)\n\n\tif err != nil {\n\t\tterm.OutputErrorAndExit(\"Error setting current plan: %v\", err)\n\t}\n","sourceCodeStart":46,"sourceCodeEnd":82,"githubUrl":"https://github.com/plandex-ai/plandex/blob/e2d772072efadbe41d2946d97d79be55532dbab5/app/cli/cmd/new.go#L46-L82","documentation":"This error wraps a failure from api.Client.GetDefaultPlanConfig() during the 'new' command, which fetches the default plan configuration to seed a new plan. Any API error is funneled into errCh with this message. It is the same underlying call as error 60 but on the plan-creation path.","triggerScenarios":"GetDefaultPlanConfig returns non-nil *shared.ApiError while creating a new plan — unauthenticated request, server 5xx, or connectivity failure.","commonSituations":"Expired auth token, API server outage, backend schema change to the default config endpoint, proxy/firewall blocking HTTPS.","solutions":["Re-authenticate and retry the 'new' command","Check server status / network connectivity","Update the CLI to match the current API","Read apiErr.Msg for the exact server-side reason"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"if auth.Current.UserId == \"\" {\n    return fmt.Errorf(\"not authenticated\")\n}","typeGuard":"var apiErr *shared.ApiError\ndefaultConfig, apiErr = api.Client.GetDefaultPlanConfig()\nif apiErr != nil {\n    // handle\n}","tryCatchPattern":"config, apiErr := api.Client.GetDefaultPlanConfig()\nif apiErr != nil {\n    if isTransient(apiErr.StatusCode) { retryWithBackoff(3) } else { return apiErr }\n}","preventionTips":["Retry transient server errors with backoff","Verify connectivity before plan creation","Handle ApiError by StatusCode","Keep CLI and server versions compatible"],"tags":["network","api","cli","config"],"backgroundTag":"api-request-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"}