Skip to content

fix(dashboard): Integration store provider crash fixes NV-7120#10051

Merged
scopsy merged 2 commits intonextfrom
cursor/NV-7120-integration-store-provider-crash-b86f
Feb 23, 2026
Merged

fix(dashboard): Integration store provider crash fixes NV-7120#10051
scopsy merged 2 commits intonextfrom
cursor/NV-7120-integration-store-provider-crash-b86f

Conversation

@scopsy
Copy link
Contributor

@scopsy scopsy commented Feb 16, 2026

What changed? Why was the change needed?

This PR fixes a crash in the integration store when connecting providers like SparkPost or iSendSMS (NV-7120).

The issue occurred because the DropdownInput component was passing null values from credential definitions (e.g., value: null for a 'Default' option) as empty strings ('') to Radix's <SelectItem /> component. Radix Select explicitly forbids empty string values for SelectItem as it uses '' internally to clear the selection.

The fix introduces toSelectValue and fromSelectValue helper functions in credential-section.tsx to map null/undefined/empty values to a sentinel string ("__null__") for Radix Select, and converts them back to an empty string when the user makes a selection. This prevents the crash while preserving the intended behavior.

Relevant links:

Screenshots

The fix resolves the UI crash shown in the Linear ticket.


Linear Issue: NV-7120

Open in Cursor Open in Web

… select

Radix Select crashes when a <Select.Item /> receives an empty string value.
This happened for providers like SparkPost and iSendSMS that have dropdown
credentials with null values (e.g., 'Default' region option).

Use a sentinel value for null/empty dropdown options and convert back on
selection to prevent the crash while preserving the original behavior.

Co-authored-by: Dima Grossman <dima@grossman.io>
@cursor
Copy link
Contributor

cursor bot commented Feb 16, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@linear
Copy link

linear bot commented Feb 16, 2026

@netlify
Copy link

netlify bot commented Feb 16, 2026

Deploy Preview for dashboard-v2-novu-staging ready!

Name Link
🔨 Latest commit bb14edd
🔍 Latest deploy log https://app.netlify.com/projects/dashboard-v2-novu-staging/deploys/699c4df10167d100088027f6
😎 Deploy Preview https://deploy-preview-10051.dashboard-v2.novu-staging.co
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@scopsy scopsy changed the title Integration store provider crash fix(dashboard): Integration store provider crash fixes NV-7120 Feb 23, 2026
@scopsy scopsy marked this pull request as ready for review February 23, 2026 12:53
@scopsy scopsy merged commit d3dd25d into next Feb 23, 2026
18 of 20 checks passed
@scopsy scopsy deleted the cursor/NV-7120-integration-store-provider-crash-b86f branch February 23, 2026 12:54
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 23, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between de329bc and bb14edd.

📒 Files selected for processing (1)
  • apps/dashboard/src/components/integrations/components/credential-section.tsx

Walkthrough

This change modifies the credential section component to improve handling of null-equivalent values in dropdown selections. Three internal helpers are introduced: NULL_DROPDOWN_VALUE, toSelectValue, and fromSelectValue. The DropdownInput component is updated to map the form's string value to the Select component's format using toSelectValue when displaying, and converts the selected value back using fromSelectValue before invoking field.onChange. Additionally, dropdown option rendering is updated to normalize option values consistently using toSelectValue for both SelectItem key and value attributes. The modifications ensure safe null value representation throughout the dropdown selection flow.

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants