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

  1. Check the server log for the underlying error adjacent to this message
  2. Verify storage backend is writable and reachable (disk space, permissions, locks)
  3. Retry the update after resolving storage issues; check for concurrent update conflicts
  4. 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

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


AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05). Data as JSON: /api/errors/00882bcc267a4f90. Report an issue: GitHub.