Skip to content

Netsuite - Can't connect to Netsuite due to an authentication error via token (SOAP). #105783

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


Version Number: 9.5.28-5
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from BrowserStack: https://test-management.browserstack.com/projects/2219752/test-runs/81946540/folder/13176904/41237411/1937759051?sort=%2Bidentifier
Email or phone of affected tester (no customers): rybkina+110226@gmail.com
Issue reported by: Applause Internal Team
Bug source: Regression TC Execution
Device used: iOS, Android
App Component: Workspace Settings

Action Performed:

Pre: Sign in as admin to Control workspace

  1. Navigate to Connection > tap Netsuite
  2. Tap on link "Connect with token-based authentication (SOAP) instead"
  3. Enter Metsuite Account ID, Token ID. Token Secret via 1Password > Confirm

Expected Result:

Able to connect to Netsuite

Actual Result:

"Can't connect to NetSuite due to an authentication error." error displayed.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7303713_1793716415965.ScreenRecording_11-03-2026_08-28-35_1.mp4
Image

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7303713

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Nov 3, 2026
  2. melvin-bot commented on Nov 3, 2026

    @melvin-bot

    Triggered auto assignment to @francoisl (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

  3. melvin-bot commented on Nov 3, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  4. github-actions commented on Nov 3, 2026

    @github-actions
    Contributor

    👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  5. MelvinBot commented on Nov 3, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Investigation

    Causing PR: None found in App. Confidence that App isn't the cause: medium-high.

    Recommendation: Don't revert anything in App. This appears to be a backend/internal issue or a test-credential problem. A separate internal investigation is needed.

    • The SOAP request path is unchanged between production and staging.
    • The error text appears only when the server returns isAuthenticationError: true after it tries to connect to NetSuite.
    • "Not reproducible in production" doesn't prove a regression. The SOAP link is hidden on production, so the tester couldn't run these steps there.
    Investigation details

    SOAP link is non-production only. canSwitchToTokenAuthentication = !isProduction in NetSuiteTokenInputPage.tsx#L56-L60.

    SOAP path unchanged (production 2fc7706990f3 vs staging 89308067b4df). These files are identical: NetSuiteTokenInputPage.tsx, NetSuiteTokenAuthenticationLink.tsx, NetSuiteTokenSetupContent.tsx, NetSuiteCommands.ts, connections/index.ts, ConnectPolicyToNetSuiteParams.ts, NetSuiteTokenInputForm.ts (form type), and FormProvider.tsx. NetSuiteTokenInputForm.tsx differs only inside the OAuth branch. The SOAP branch at NetSuiteTokenInputForm.tsx#L67-L71 still sends the same three values through ConnectPolicyToNetSuite / UpdateNetSuiteTokens (NetSuiteCommands.ts#L25-L50).

    The error is server-driven. The message shows only when lastSync.isAuthenticationError === true (connections/index.ts#L323-L326, rendered in accounting/utils.tsx#L788-L791). The App never sets this flag itself.

    Staging PRs that touch NetSuite (both ruled out):

    PR NetSuite change Affects SOAP?
    [Part 7] Remove Onyx.connect(ONYXKEYS.SESSION) in /Session/index.ts: thread sesion through isAnonymousUser Adds a session argument to connectToNetSuiteOAuthSetup. This runs only in the OAuth branch, which returns before the SOAP branch. No
    Launch unified Connections: remove the beta and the pages it replaced Changes back-navigation routes and removes the beta. No credential or parameter changes. No

    No other PR in the checklist touches NetSuite, the connection actions, or the API parameters.

    Similar past issues:

    Suggested next steps:

    1. An internal engineer should check the tester's ConnectPolicyToNetSuite requests from 2026-11-03 and see what NetSuite returned.
    2. Applause should confirm which 1Password credentials they used and whether the token is still valid.

    Next Steps: Reply with @MelvinBot <your feedback> to refine this analysis.


    view run

  6. francoisl commented on Nov 3, 2026

    @francoisl
    Contributor

    Found the logs and they indicate some invalid credentials error. The connection flow from App started correctly, so I don't think this is an App blocker.

  7. added and removed
    DeployBlockerCashThis issue or pull request should block deployment
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

BugSomething is broken. Auto assigns a BugZero manager.DailyKSv2Engineering

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions