Files
Alaister YoungandAlaister Young b28323be98 fix(studio): prevent infinite render loop in new-project form (#46131)
Fixes a "Maximum update depth exceeded" infinite render loop on
`/new/[slug]` introduced by #46085. The symptom showed up on the
internal-only configuration dropdown, but the entire form was looping.

## Root cause

The new `useEffect` that syncs `dataApiDefaultPrivileges` to the
experiment-driven default had `form.formState` in its deps.
`form.formState` is a react-hook-form Proxy that returns a new reference
on every render, so the effect refired after every render → `setValue` →
render → effect → loop.

## Fix

Pull the dirty check out of the effect into a stable boolean computed
during render, and drop `form.formState` from the deps. Semantics
unchanged — still syncs on flag resolve, still skips when the user has
touched the field.

## To test

- Hard-reload `/new/[slug]` and confirm there's no "Maximum update depth
exceeded" error in the console
- Open the configuration dropdown (internal-only) and confirm it
interacts normally
- With the `data-api-revoke-on-create-default` flag off, confirm
`dataApiDefaultPrivileges` defaults to `true`; with it on, defaults to
`false`
- Manually toggle the dataApiDefaultPrivileges field, then confirm the
effect no longer overwrites your choice when the flag resolves

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Fixed data API default privileges synchronization to prevent
unnecessary updates and improve application stability during
configuration changes.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46131?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com>
2026-05-20 03:23:00 +00:00
..