plandex-ai/plandex · error · http
Error updating settings
Error message
Error updating settings
What it means
UpdateSettingsHandler applies the settings change inside a callback; if that operation returns an error the handler logs it and returns HTTP 500 'Error updating settings'. This means the settings change failed to persist server-side.
Source
Thrown at app/server/handlers/settings.go:204
if err != nil {
return fmt.Errorf("error storing settings: %v", err)
}
commitMsg = getUpdateCommitMsg(settings, originalSettings, false)
err = repo.GitAddAndCommit(branch, commitMsg)
if err != nil {
return fmt.Errorf("error committing settings: %v", err)
}
return nil
})
if err != nil {
log.Println("Error updating settings: ", err)
http.Error(w, "Error updating settings", http.StatusInternalServerError)
return
}
res := shared.UpdateSettingsResponse{
Msg: commitMsg,
}
bytes, err := json.Marshal(res)
if err != nil {
log.Println("Error marshalling response: ", err)
http.Error(w, "Error marshalling response", http.StatusInternalServerError)
return
}
w.Write(bytes)
log.Println("UpdateSettingsHandler processed successfully")
View on GitHub (pinned to e2d772072e)
Solutions
- Check the server log for the underlying error adjacent to this message
- Verify storage backend is writable and reachable (disk space, permissions, locks)
- Retry the update after resolving storage issues; check for concurrent update conflicts
- Ensure the client request isn't timing out and canceling the server context
Defensive patterns
Strategy: retry
Try / catch
resp, err := client.UpdateSettings(ctx, req)
if err != nil {
var apiErr *APIError
if errors.As(err, &apiErr) && strings.Contains(apiErr.Message, "Error updating settings") {
// transient storage failure: backoff and retry
time.Sleep(2 * time.Second)
return client.UpdateSettings(ctx, req)
}
return err
} Prevention
- Use generous client timeouts so the server context isn't canceled mid-write
- Monitor storage backend health (disk space, git repo state)
- Retry with backoff on transient failures; updates should be idempotent
When it happens
Trigger: The update callback returns an error: write/commit failure to the settings store (git commit or DB write), storage backend unavailable, permission denied, or context cancellation of r.Context().
Common situations: Storage backend down or read-only filesystem; git settings repo in a locked/dirty state; concurrent settings update conflict; request context canceled by client timeout mid-update.
Related errors
- Error getting settings
- token exchange failed - error creating request: %s
- token exchange failed - error reading body: %s
- token exchange failed - status: %d, body: %s
- failed to update context: %v
AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05).
Data as JSON: /api/errors/00882bcc267a4f90.
Report an issue: GitHub.