plandex-ai/plandex · error
error getting org default settings: %v
Error message
error getting org default settings: %v
What it means
When a plan has no (or empty) settings.json, GetPlanSettings falls back to GetOrgDefaultSettings(plan.OrgId). If that org-defaults lookup errors, it is wrapped here. It is a fallback-path failure: the plan's own settings were absent and reading org defaults also failed.
Source
Thrown at app/server/db/settings_helpers.go:40
if err != nil {
return nil, fmt.Errorf("error getting custom models: %v", err)
}
defer func() {
if settings != nil {
settings.Configure(result.CustomModelPacks, result.CustomModels, result.CustomProviders, os.Getenv("PLANDEX_CLOUD") != "")
}
}()
bytes, err := os.ReadFile(settingsPath)
if os.IsNotExist(err) || len(bytes) == 0 {
log.Printf("GetPlanSettings - no settings file found for plan %s - checking org defaults", plan.Id)
// see if org has default settings
defaultSettings, err := GetOrgDefaultSettings(plan.OrgId)
if err != nil {
return nil, fmt.Errorf("error getting org default settings: %v", err)
}
if defaultSettings != nil {
log.Printf("GetPlanSettings - found org default settings for plan %s", plan.Id)
return defaultSettings, nil
} else {
log.Printf("GetPlanSettings - no org default settings found for plan %s", plan.Id)
}
log.Println("GetPlanSettings - no default settings found, returning default settings object")
// if it doesn't exist, return default settings object
settings = &shared.PlanSettings{
UpdatedAt: plan.CreatedAt,
ModelPackName: shared.DefaultModelPack.Name,
}
return settings, nil
} else if err != nil {
return nil, fmt.Errorf("error reading settings file: %v", err)View on GitHub (pinned to e2d772072e)
Solutions
- Unwrap the inner error and fix the underlying GetOrgDefaultSettings failure.
- Check database connectivity if org defaults are DB-backed.
- Verify plan.OrgId is correct and its org exists.
- As a workaround, create the plan's settings.json explicitly so the fallback path isn't taken.
Defensive patterns
Strategy: fallback
Try / catch
settings, err := GetPlanSettings(plan)
if err != nil && strings.Contains(err.Error(), "error getting org default settings") {
log.Printf("org defaults unavailable for %s: %v", plan.OrgId, err)
settings = &shared.PlanSettings{ModelPackName: shared.DefaultModelPack.Name}
} Prevention
- Store explicit per-plan settings.json for plans that must not depend on org defaults.
- Ensure org default settings exist and are readable before creating plans under that org.
- Check DB health if the org-defaults store is database-backed.
When it happens
Trigger: Calling GetPlanSettings when the plan's settings.json is missing or zero-length AND GetOrgDefaultSettings fails — e.g. org settings store missing/corrupt, or a database (sqlx) error during the lookup.
Common situations: Fresh plans with no per-plan settings combined with DB connectivity issues; corrupt org default settings data; wrong org id on the plan.
Related errors
- error copying settings: %v
- error getting custom models: %v
- error starting whole file build: %v
- error building whole file: %w
- fast apply validation failed: %s
AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05).
Data as JSON: /api/errors/b2be22fc8454e098.
Report an issue: GitHub.