Menu
Troubleshooting SuiteCommerce: 15 Developer Tool and Activation Problems
SuiteCommerceSuiteCommerceTroubleshootingDeveloper ToolsThemesExtensions

Troubleshooting SuiteCommerce: 15 Developer Tool and Activation Problems

Stenbase TeamFebruary 1, 202610 min read
Back to Blog
On this page

Troubleshooting SuiteCommerce: 15 Developer Tool and Activation Problems

Start by identifying which tool failed. SuiteCommerce theme tools, extension tools, and SuiteCommerce Advanced (SCA) core tools have different commands, source trees, and Node.js requirements. An error from one cannot be fixed safely with commands copied from another.

This guide covers problems documented by Oracle NetSuite or direct consequences of its documented workflow. It does not invent universal fixes for account-specific payment, tax, inventory, or integration errors.

Before changing anything

Capture these facts:

Commerce product: SuiteCommerce / SuiteCommerce MyAccount / SCA
Commerce or SCA release:
NetSuite account release:
Tool archive and version:
Node.js version:
Command and full output:
Account, role, website, and domain selected:
Last known working commit and activation:

Then preserve the evidence:

  • copy the full terminal output;
  • save the browser console and failed network response;
  • note whether the failure occurred during fetch, local compilation, upload, or activation;
  • commit or back up Workspace/ before rerunning a fetch;
  • do not edit LocalDistribution/ or DeployDistribution/.

Error message and warning display on screen

1. npm install or Sass fails after changing Node.js

Likely cause

The Node.js version does not match the Commerce or SCA release. Older SCA releases require old Node versions; current SuiteCommerce uses a newer pinned version. “Latest LTS” is not a safe rule.

Check

node -v
npm -v

Compare the result with Oracle's supported Node.js table.

Fix

Switch to the exact version listed for the implementation, remove dependencies installed by the wrong runtime, and reinstall from the untouched tool archive's package files:

rm -rf node_modules
npm install

Do not upgrade node-sass, Gulp plugins, Babel, or the developer tools package set unless Oracle's release-specific instructions tell you to. Those dependencies are coupled to the downloaded tools.

2. Gulp reports a global and local version mismatch

Symptom

Running gulp prints a warning because the globally installed CLI and the version used by the downloaded tools differ.

What Oracle says

Oracle's developer-tool troubleshooting page says this warning is expected and does not itself cause problems.

Action

Do not replace the tool archive's local Gulp dependency just to remove the warning. Confirm that gulp lists the expected theme, extension, or SCA tasks. Investigate the actual failing task and stack trace.

3. Fetch or deploy returns INVALID_LOGIN_ATTEMPT

Likely cause

The selected role requires two-factor authentication, but the developer tools are not using the required token-based authentication flow or the saved authentication is no longer valid.

Fix

Use the authentication setup documented for the downloaded tools. Current Theme and Extension Developer Tools support token-based authentication and store the integration consumer values in the top-level .env file. Fetch or deploy then asks you to select an authentication ID, account, and role.

To choose a different saved identity, use the documented --to option:

gulp theme:fetch --to
gulp extension:deploy --to

--to does not mean “deploy to production” or “deploy to sandbox.” It resets the selection so you can choose or create an authentication ID.

See Token Based Authentication.

4. Fetch or deploy returns INSUFFICIENT_PERMISSION

Likely causes

  • The selected role lacks the Commerce developer-tool permissions.
  • A custom deploy role was not added to the audience of the developer-tool RESTlet script deployments.
  • The employee does not have the selected role in the target account.

Fix

Use Administrator or SCDeployer to confirm whether the problem is role-specific. If a custom role is required, follow Oracle's permission and script-deployment-audience procedure rather than copying a guessed permission list.

See Developer Tool Roles and Permissions and Oracle's INSUFFICIENT_PERMISSION entry in Troubleshooting the Developer Tools.

5. The command authenticated against the wrong account

Symptom

A fetch returns an unexpected website or a deployment uploads to an account used by an earlier command.

Cause

The tools reuse the existing authentication ID unless told to select another one.

Fix

Stop before uploading more files. Rerun with --to and select the intended authentication ID. For release 2021.2.1 or later accounts with account-specific domains, use the documented account parameter:

gulp extension:fetch --account 123456-sb1
gulp extension:deploy --account 123456-sb1

gulp theme:fetch --account 123456-sb1
gulp theme:deploy --account 123456-sb1

Keep separate top-level developer-tool directories for sandbox and production, as Oracle recommends.

6. gulp theme:fetch erased local theme changes

Cause

This command clears the theme workspace before downloading the active theme. That is documented behavior, not a merge operation.

Recovery

Restore the files from Git, a backup, or another developer's clean checkout. Do not run fetch again until recovery is complete.

Prevention

Commit or back up Workspace/ before every theme fetch. Review Fetch Active Theme Files, which includes the overwrite warning.

7. gulp extension:fetch replaced extension source

Cause

Extension fetch can download source for eligible custom extensions active on the selected domain and overwrite matching local workspace files. Published extension source cannot be fetched for editing.

Recovery and prevention

Restore from version control. Before fetching, deploy or commit work that must be retained and verify which domain and active extensions you selected.

See Fetch Active Theme and Extension Files.

8. Manual manifest.json edits disappear

Cause

These commands update the manifest as part of compilation or deployment:

gulp theme:local
gulp theme:deploy
gulp extension:local
gulp extension:deploy

Fix

Restore the intended changes from Git. If the manual edit is required, rerun with the matching preserve option:

gulp theme:local --preserve-manifest
gulp theme:deploy --preserve-manifest

gulp extension:local --preserve-manifest
gulp extension:deploy --preserve-manifest

Use the preserve flag only after confirming the manifest is valid and every listed file exists. Review the generated diff after each build.

9. A new theme file or extension override does not appear locally

Cause

The theme watch task recompiles changes to known Sass and template files. It does not automatically discover a new file or process a newly added override after the server has started.

Fix

Stop and rerun:

gulp theme:local

If you introduced a file in a non-fallback theme, confirm that the manifest lists it. A fallback theme created with gulp theme:create cannot add new Sass or templates; place those resources in an extension.

See Test a Theme on a Local Server.

10. An extension works locally except for its service or configuration

Cause

The local extension server can compile and serve frontend files, but SuiteScript services do not exist in the NetSuite backend until deployment and activation. Configuration JSON changes also do not apply to a domain until deployment and activation.

Fix

  1. Deploy the extension to a sandbox or test account:
    gulp extension:deploy
    
  2. Activate that version for the test domain in Extension Manager.
  3. Continue local frontend testing against the activated backend.

Do not hard-code a temporary service URL. Use the extension asset path generated for the service.

See Test an Extension on a Local Server.

11. Deployment succeeded, but the website did not change

Cause

Theme and extension deployment uploads source and creates or updates the record in NetSuite. It does not apply that version to a domain.

Fix

Go to Commerce > Extensions > Extension Manager, edit the activation for the correct website and domain, select the deployed version, and activate it. Wait for activation compilation to complete, then clear only the caches relevant to your test and reload the domain.

For SCA core source, also verify that the domain is linked to the SSP application you deployed.

See Activating Themes and Extensions.

12. A deployed theme or extension is missing from the activation list

Likely causes

  • Its manifest target version does not include the domain's SuiteCommerce or SCA version.
  • It targets the wrong Commerce product.
  • Deployment went to another account or website.
  • The package is not installed or deployed in this account.

Check

Review target and target_version in manifest.json, the deployment output, account, website, and current domain activation. Oracle notes that incompatible packages are hidden from the activation page.

Do not fix this by declaring compatibility with every version. Set the range to releases you have tested, redeploy, and check again.

13. Activation fails after upload

Approach

Treat upload and activation as separate stages. If upload succeeded, do not keep changing authentication or File Cabinet permissions.

In Extension Manager:

  1. Open the failed activation.
  2. Identify which theme or extension failed.
  3. Save the activation error details.
  4. Check manifest paths, duplicate resources, missing files, target versions, and extension overrides.
  5. Reproduce the same package set on a development domain.
  6. Remove one changed package at a time only when the test preserves the failing conditions.

An extension override is ignored if its extension is inactive. If an extension was updated after the theme override was created, refetch in a safe workspace and compare the overridden source with the new version.

Oracle's activation workflow and troubleshooting entry point are under Activating Themes and Extensions.

14. Deploy fails with Cannot Read Property 'files' of Undefined

Cause documented by Oracle

Theme and extension deploy tasks upload files through RESTlet requests. Deep directory structures can consume enough SuiteScript governance units that the default upload chunk is too large.

Fix

In the top-level developer-tool directory, open gulp/config/config.json and reduce chunk_size from its default of 80. Make one measured change, retry, and keep the terminal output. Do not modify unrelated Gulp task source.

Oracle documents the error and the chunk_size setting in Troubleshooting the Developer Tools.

15. The local server fails with ENOSPC or EMFILE

ENOSPC on Unix-like systems

The watch task exceeded the operating system's file-watch limit. Oracle documents this Linux command:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Review the command with your system administrator before changing a shared or managed host.

EMFILE

The process exceeded the open-file limit. Oracle's documented temporary adjustment is:

ulimit -n 2048

If the limit is managed by your shell, CI runner, container, or operating system service, change it in the correct place rather than adding the command blindly to the project.

Commands that should raise suspicion

The current Theme and Extension Developer Tools reference does not list these as portable commands:

gulp deploy --target production --source local
suitecommerce-cli deploy
gulp extension:validate
gulp extension:deploy --to sandbox
gulp theme:deploy --to production
gulp theme:local --reload
gulp sass:compile
npm run lint:suitescript

Some could exist in a team's private wrapper or an old SCA source tree. That does not make them standard Theme or Extension Developer Tools commands. Run gulp in the exact downloaded tool directory and check Oracle's Gulp command reference.

When the problem is payment, tax, inventory, or an integration

Do not apply a generic code snippet. Capture the failed request and NetSuite record, then separate the layers:

  1. Did the browser send the expected request once?
  2. Did the Commerce service return an error or a valid response?
  3. Was the related NetSuite record created or changed?
  4. Did a gateway or third party accept, reject, or time out?
  5. Does the same input work without the custom extension?

Redact credentials, payment data, tokens, customer data, and account identifiers before sharing logs. Escalate with timestamps, request IDs, script deployment and execution details, the affected record IDs, and a minimal reproduction. Gateway decline codes and tax-provider responses must be interpreted using that provider's documentation and the account's configuration.

Primary references

Need Help with Your NetSuite Project?

Our team of experts is ready to help you achieve your goals.

Related Articles