Skip to content

Conversation

@hana-akamai
Copy link
Contributor

@hana-akamai hana-akamai commented Feb 2, 2026

Description 📝

Fix Database Cluster restore backups / delete dialog bugs

Changes 🔄

  • Disable Restore button for newest full backup plus incremental option if a first backup hasn't been completed yet
  • Stop the loading upon error and reset error upon closing for restore dialog
  • Reset error upon closing delete dialog on the landing page
  • 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 📷

Restore dialog error Delete dialog error
error.mov
delete.error.mov

How to test 🧪

Reproduction steps

Backups:

  • On prod or another branch, create a new cluster
  • While the cluster is still provisioning, go to the Database cluster's backups tab
  • The Restore button is enabled for the Newest full backup plus incremental option
  • Click Restore and then Restore again in the dialog. You should see an error and the loading persists
  • Close out of the dialog and open it again. The error and loading state persists

Delete:

  • Go to the Database landing table page, ensure you have at least 2 clusters
  • Open the network tab and throttle your connection to 3G
  • Delete a Database cluster via action menu, then quickly delete the same one again before it disappears from the table (faster if TTC is disabled)
  • You should see an error in the dialog. Close the dialog and open the delete dialog for a different cluster. The error persists

Verification steps

Backups:

  • Checkout this PR, create a new cluster
  • While the cluster is still provisioning, go to the Database cluster's backups tab
  • The Restore button is disabled for the Newest full backup plus incremental option with a tooltip explanation
  • In DatabaseBackups.tsx line ~318, remove the check for Boolean(unableToRestoreCopy) to enable the restore button
  • Click Restore and then Restore again in the dialog. You should see an error and loading should stop
  • Close out of the dialog and open it again. The error and loading states should not persist

Delete:

  • Go to the Database landing table page, ensure you have at least 2 clusters
  • Open the network tab and throttle your connection to 3G
  • Delete a Database cluster via action menu, then quickly delete the same one again before it disappears from the table (faster if TTC is disabled)
  • You should see an error in the dialog. Close the dialog and open the delete dialog for a different cluster. The error should not persist
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 Feb 2, 2026
@hana-akamai hana-akamai added the DBaaS Relates to Database as a Service label Feb 2, 2026
title={`Restore ${database.label}`}
>
{error ? (
<Notice
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Moved error notice to the top since that's our pattern

@hana-akamai hana-akamai marked this pull request as ready for review February 3, 2026 18:10
@hana-akamai hana-akamai requested a review from a team as a code owner February 3, 2026 18:10
</Typography>
)}
{configs.map((config, index) => (
{fields.map((config, index) => (
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Squeezing a small bug fix from #13350, no need for changeset since it hasn't been released yet.

Add a config option, then delete it by clicking x, you should not see undefined

Image

@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 1 failing test on test run #4 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
1 Failing864 Passing11 Skipped36m 51s

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"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DBaaS Relates to Database as a Service

Projects

Status: Review

Development

Successfully merging this pull request may close these issues.

3 participants