You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[$250] WS Settings - Can't connect to Netsuite due to an authentication error #87227
Root Cause: This is a backend issue, not an App (frontend) issue. The App's NetSuite connection flow (App/src/components/ConnectToNetSuiteFlow/index.tsx) simply collects three TBA (Token-Based Authentication) credentials — netSuiteAccountID, netSuiteTokenID, netSuiteTokenSecret — and passes them to the backend via API.write('ConnectPolicyToNetSuite', ...) (App/src/libs/actions/connections/NetSuiteCommands.ts:21-42). The App performs no client-side authentication or validation of these credentials. The isAuthenticationError flag displayed in the UI is set entirely by the backend at policy.connections.netsuite.lastSync.isAuthenticationError.
Recommended Fix: Investigate the backend (Web-Expensify / Integration-Server) NetSuite connection handler. Check backend logs for ConnectPolicyToNetSuite commands to see the specific error NetSuite's API returns. Common causes per the NS0109 troubleshooting doc include expired/revoked tokens, changed passwords, modified role permissions, or disabled roles on the NetSuite side.
Investigation details
App-side flow (confirmed working as designed)
User clicks "Connect" on NetSuite → ConnectToNetSuiteFlow mounts (App/src/components/ConnectToNetSuiteFlow/index.tsx:18-63)
5-step wizard guides user through NetSuite setup (App/src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/NetSuiteTokenInputPage.tsx:18-24): Install Bundle → Enable Token Auth → Enable SOAP → Create Access Token → Enter Credentials
On submit, the App sends credentials to the backend (App/src/libs/actions/connections/NetSuiteCommands.ts:21-42) with only optimistic sync progress data — no success/failure handling on the client
Backend processes the connection, sets lastSync.isAuthenticationError = true on failure
App reads this flag via isAuthenticationError() (App/src/libs/actions/connections/index.ts:262-265) and displays the error
Why this is not an App bug
The App code has had no meaningful recent changes to the NetSuite connection flow
There is zero client-side credential validation — credentials are passed directly to the backend
The error message "Can't connect to NetSuite due to an authentication error" is rendered when lastSync.isAuthenticationError === true, a flag set by the backend
The App correctly displays re-authentication UI (skips setup pages, shows "Enter credentials" button) when this flag is set
What needs backend investigation
Check backend logs for ConnectPolicyToNetSuite / UpdateNetSuiteTokens commands to see the exact error from NetSuite's API
Determine if there were recent backend deployments that modified NetSuite TBA authentication handling
Check if this is a NetSuite-side change (TLS requirements, API deprecation, TBA endpoint changes)
Verify whether this affects all NetSuite connections or only specific accounts/tokens
Next Steps: This issue needs backend investigation (Web-Expensify / Integration-Server). The App frontend is functioning as designed — it correctly collects and forwards credentials, and correctly displays the backend-reported authentication error.
changed the title [-]WS Settings - Can't connect to Netsuite due to an authentication error[/-][+][$250] WS Settings - Can't connect to Netsuite due to an authentication error[/+]on Apr 9, 2026
@yuwenmemon@truph01 this issue was created 2 weeks ago. Are we close to a solution? Let's make sure we're treating this as a top priority. Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!
Activity
MelvinBot commentedon Apr 7, 2026
Issue Analysis
Root Cause: This is a backend issue, not an App (frontend) issue. The App's NetSuite connection flow (
App/src/components/ConnectToNetSuiteFlow/index.tsx) simply collects three TBA (Token-Based Authentication) credentials —netSuiteAccountID,netSuiteTokenID,netSuiteTokenSecret— and passes them to the backend viaAPI.write('ConnectPolicyToNetSuite', ...)(App/src/libs/actions/connections/NetSuiteCommands.ts:21-42). The App performs no client-side authentication or validation of these credentials. TheisAuthenticationErrorflag displayed in the UI is set entirely by the backend atpolicy.connections.netsuite.lastSync.isAuthenticationError.Recommended Fix: Investigate the backend (Web-Expensify / Integration-Server) NetSuite connection handler. Check backend logs for
ConnectPolicyToNetSuitecommands to see the specific error NetSuite's API returns. Common causes per the NS0109 troubleshooting doc include expired/revoked tokens, changed passwords, modified role permissions, or disabled roles on the NetSuite side.Investigation details
App-side flow (confirmed working as designed)
ConnectToNetSuiteFlowmounts (App/src/components/ConnectToNetSuiteFlow/index.tsx:18-63)App/src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/NetSuiteTokenInputPage.tsx:18-24): Install Bundle → Enable Token Auth → Enable SOAP → Create Access Token → Enter CredentialsApp/src/libs/actions/connections/NetSuiteCommands.ts:21-42) with only optimistic sync progress data — no success/failure handling on the clientlastSync.isAuthenticationError = trueon failureisAuthenticationError()(App/src/libs/actions/connections/index.ts:262-265) and displays the errorWhy this is not an App bug
lastSync.isAuthenticationError === true, a flag set by the backendWhat needs backend investigation
ConnectPolicyToNetSuite/UpdateNetSuiteTokenscommands to see the exact error from NetSuite's APINext Steps: This issue needs backend investigation (Web-Expensify / Integration-Server). The App frontend is functioning as designed — it correctly collects and forwards credentials, and correctly displays the backend-reported authentication error.
melvin-bot commentedon Apr 9, 2026
Triggered auto assignment to Contributor-plus team member for initial proposal review - @truph01 (
External)[-]WS Settings - Can't connect to Netsuite due to an authentication error[/-][+][$250] WS Settings - Can't connect to Netsuite due to an authentication error[/+]melvin-bot commentedon Apr 9, 2026
Job added to Upwork: https://www.upwork.com/jobs/~022042222680764968611
6 remaining items
melvin-bot commentedon Apr 15, 2026
@truph01 Eep! 4 days overdue now. Issues have feelings too...
melvin-bot commentedon Apr 17, 2026
@truph01 6 days overdue. This is scarier than being forced to listen to Vogon poetry!
melvin-bot commentedon Apr 21, 2026
@yuwenmemon @truph01 this issue was created 2 weeks ago. Are we close to a solution? Let's make sure we're treating this as a top priority. Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!
melvin-bot commentedon Apr 21, 2026
@truph01 10 days overdue. I'm getting more depressed than Marvin.
melvin-bot commentedon Apr 23, 2026
@truph01 12 days overdue. Walking. Toward. The. Light...
mvtglobally commentedon Apr 25, 2026
Issue not reproducible during KI retests. (First week)
melvin-bot commentedon Apr 27, 2026
This issue has not been updated in over 14 days. @yuwenmemon, @truph01 eroding to Weekly issue.
mvtglobally commentedon May 2, 2026
Issue not reproducible during KI retests. (Second week)
truph01 commentedon May 5, 2026
@yuwenmemon We can close this one