Skip to content

fix: [UIE-9832] - Database advanced config inline errors not displaying#13350

Merged
hana-akamai merged 4 commits into
linode:developfrom
hana-akamai:UIE-9832-fix-advanced-config-error
Feb 2, 2026
Merged

fix: [UIE-9832] - Database advanced config inline errors not displaying#13350
hana-akamai merged 4 commits into
linode:developfrom
hana-akamai:UIE-9832-fix-advanced-config-error

Conversation

@hana-akamai
Copy link
Copy Markdown
Contributor

@hana-akamai hana-akamai commented Jan 30, 2026

Description 📝

Fix some advanced config inline errors not displaying such as synchronous_replication for pgbouncer clusters

Changes 🔄

  • Use formState errors instead of managing our own error states
  • Minor refactoring

Scope 🚢

Upon production release, changes in this PR will be visible to:

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Target release date 🗓️

Next release

Preview 📷

Inline error Global error
Screenshot 2026-01-30 at 3 45 33 PM Screenshot 2026-01-30 at 3 45 09 PM

How to test 🧪

Prerequisites

(How to setup test environment)

  • Ensure you have a mysql and postgres Database cluster created

Reproduction steps

(How to reproduce the issue, if applicable)

  • Go to prod or another branch
  • Go to a postgres Database cluster that does not have 3 nodes and go to the Advanced Configuration tab
  • Add synchronous_replication config option with the value being quorum
  • Open network tab, click Save and observe the network error but no error displayed in the form

Verification steps

(How to verify changes)

  • Checkout preview link or pull this branch locally
  • Go to a postgres Database cluster that does not have 3 nodes and go to the Advanced Configuration tab
  • Add synchronous_replication config option with the value being quorum
  • Open network tab, click Save, observe the network error and there should be an inline error displayed in the form
  • There should be no regressions in global errors or other inline options (such as for mysql)
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@hana-akamai hana-akamai self-assigned this Jan 30, 2026
@hana-akamai hana-akamai added Bug Fixes for regressions or bugs DBaaS Relates to Database as a Service labels Jan 30, 2026
@hana-akamai hana-akamai changed the title fix: [UIE-9832] - Advanced config inline errors not displaying fix: [UIE-9832] - Database advanced config inline errors not displaying Jan 30, 2026
@linode-gh-bot
Copy link
Copy Markdown

Cloud Manager UI test results

🔺 1 failing test on test run #3 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
1 Failing864 Passing11 Skipped42m 11s

Details

Failing Tests
SpecTest
clone-linode.spec.tsCloud Manager Cypress Tests→clone linode » can clone a Linode from Linode details page

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/linodes/clone-linode.spec.ts"

@hana-akamai hana-akamai marked this pull request as ready for review January 30, 2026 23:32
@hana-akamai hana-akamai requested a review from a team as a code owner January 30, 2026 23:32
Copy link
Copy Markdown
Member

@bnussman-akamai bnussman-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice fixes. Love seeing react-hook-form's error handling working well for us

});

const configs = watch('configs');
const configs = useWatch({ control, name: 'configs' });
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No concerns with this change, just a small note:

Because useWatch is mounted at the same level as the useForm, I don't think there is any re-render benefit to using useWatch over watch in this case. In this case, if configs change, this component will re-render the same number of times with either approach.

From my understanding, useWatch is only useful for minimizing re-renders when used in a child component of react-hook-form's FormProvider in more complex forms.

Copy link
Copy Markdown
Contributor

@smans-akamai smans-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Followed the steps to reproduce the error in both scenarios and see the inline errors and error banner displaying as expected!

@github-project-automation github-project-automation Bot moved this from Review to Approved in Cloud Manager Feb 2, 2026
@hana-akamai hana-akamai merged commit be3e694 into linode:develop Feb 2, 2026
34 of 35 checks passed
@github-project-automation github-project-automation Bot moved this from Approved to Merged in Cloud Manager Feb 2, 2026
@hana-akamai hana-akamai deleted the UIE-9832-fix-advanced-config-error branch February 2, 2026 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Fixes for regressions or bugs DBaaS Relates to Database as a Service

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants