Skip to main content
Version: v5

Troubleshooting

Use this guide when you are getting started with the AudioEye Testing SDK and run into setup, installation, or first-run problems.

Before you troubleshoot

Confirm these basics first:

  • You are using a supported Node.js version: 20, 22, or 24
  • You are installing packages from the project root, where package.json lives
  • Your project is already configured to use npm, yarn, or pnpm
  • Your entitlement token is available as the AUDIOEYE_ENTITLEMENT_TOKEN environment variable
  • Your package manager config includes the @audioeye registry settings from getting started

If one of those items is missing, go back to getting started and complete the initial setup first.

Installation and package download issues

Package install fails with 401, 403, or authentication errors

This usually means the package manager can reach the registry, but it is not authorized to download the package.

What to check

  • Verify that AUDIOEYE_ENTITLEMENT_TOKEN is set in the same shell session where you run npm install or yarn install or pnpm install
  • Verify that your .npmrc or .yarnrc.yml file contains the @audioeye registry configuration from getting started
  • Verify that you copied the full token from the AudioEye Customer Portal
  • If you recently refreshed your token, update every local environment and CI/CD secret that still uses the old value

Common causes

  • The token was copied with missing characters or trailing whitespace
  • The token exists in your shell profile, but the current terminal session has not reloaded it yet
  • The token was rotated in the portal, but your local machine or CI job still uses the previous token
  • The package manager config file was added in the wrong directory instead of the project root

Resolution

  1. Re-copy the token from the AudioEye Customer Portal.
  2. Re-export AUDIOEYE_ENTITLEMENT_TOKEN in your current terminal session.
  3. Re-check the package manager config in the project root.
  4. Retry installation.

If the token was refreshed recently, repeat the same update in your CI/CD environment before rerunning the pipeline.

Package install fails with 404 or package not found

This usually means the package manager is not using the AudioEye registry for the @audioeye scope.

What to check

  • For npm or pnpm, confirm .npmrc contains:
@audioeye:registry=https://npm.cloudsmith.io/audioeye-K01/audioeye/
//npm.cloudsmith.io/audioeye-K01/audioeye/:_authToken=${AUDIOEYE_ENTITLEMENT_TOKEN}
  • For Yarn, confirm .yarnrc.yml contains:
npmScopes:
audioeye:
npmAlwaysAuth: true
npmAuthToken: "${AUDIOEYE_ENTITLEMENT_TOKEN}"
npmRegistryServer: "https://npm.cloudsmith.io/audioeye-K01/audioeye/"

Resolution

Add the correct scoped registry configuration, save the file in your project root, and retry the install command.

Package install hangs or fails due to network issues

If the install process is slow, times out, or fails intermittently:

What to check

  • Your corporate VPN, proxy, or firewall is not blocking Cloudsmith
  • Your network allows outbound access to npm.cloudsmith.io
  • There is no active incident on the Cloudsmith status page

Resolution

  • Retry on a stable network connection
  • Temporarily disable VPN or proxy settings if your company policy allows it
  • If you are in CI, rerun the job to rule out a transient network error
  • If failures persist across multiple environments, check with your network or security team

Installation works locally but fails in CI

This usually means CI does not have access to the entitlement token or does not expose it during dependency installation.

What to check

  • AUDIOEYE_ENTITLEMENT_TOKEN is stored as a CI secret
  • The secret is exposed in the install step, not only in test or build steps
  • The repository contains the expected .npmrc or .yarnrc.yml configuration
  • The CI job uses a supported Node.js version

Resolution

Make sure the token is available when dependencies are installed, not after. Then rerun the job.

For setup examples, refer to getting started.

Entitlement token issues

I do not know where to find the entitlement token

Retrieve it from the AudioEye Customer Portal by following the steps in getting started.

I refreshed the token and installs stopped working

Refreshing the token invalidates the previous value.

Resolution

Update the token everywhere it is used:

  • your local shell environment
  • your shell profile such as ~/.zshrc or ~/.bashrc
  • CI/CD secret stores
  • any local developer setup notes or environment managers your team uses

After updating the token, restart the shell or open a new terminal, then retry installation.

I do not want to hardcode the token in config files

That is the recommended approach. Use an environment variable reference instead of the literal token value.

Use the examples in getting started, where the token is referenced as AUDIOEYE_ENTITLEMENT_TOKEN.

First-run and onboarding issues

The CLI installs, but the first scan fails

If @audioeye/testing-sdk-cli installs successfully but aetest scan fails, the problem is usually related to the browser runtime or the scan target rather than registry authentication.

What to check

  • Start with a simple known page first, such as the example in CLI
  • Verify that your machine can launch a Chromium-based browser
  • If you are running in Docker or CI, make sure the environment includes Chrome and the required dependencies
  • If you are scanning local HTML, verify that the file contains valid HTML and that your command points to the expected file

Resolution

  1. Confirm installation by scanning a simple known page first.
  2. If that works, retry with your local page or HTML fixture.
  3. If you are using Docker, follow the container guidance in CLI.

The CLI works locally but fails in Docker

The CLI needs a browser environment.

Common causes

  • Chrome is not installed in the image
  • Required Linux dependencies are missing
  • The container is missing permissions needed by Chrome

Resolution

Use the recommended Docker setup in CLI. If you maintain your own base image, make sure Chrome and its dependencies are installed and that the container is started with the required permissions.

I am not sure which SDK package to start with

Use this rule of thumb:

  • Start with CLI if you want the fastest possible verification that your entitlement token and installation are working
  • Use Jest for component-level tests
  • Use Playwright or Cypress for full browser workflows
  • Use Core / custom integrations only if you need lower-level control

If you are brand new to the SDK, getting started plus the CLI guide is usually the fastest onboarding path.

Framework-specific setup issues

Playwright setup compiles, but the accessibility fixture is not available

This usually means your tests are still importing Playwright's default test runner instead of the AudioEye-extended runner.

Resolution

Use one of these patterns consistently:

  • import test directly from @audioeye/testing-sdk-playwright
  • create your own shared fixture file that extends Playwright's base test, then import that local test object in every spec

If the fixture is missing in some files but not others, check for mixed imports across the test suite.

Cypress custom command is not recognized

This usually means the SDK command registration file is not imported from your Cypress support layer.

Resolution

Make sure:

  • @audioeye/testing-sdk-cypress is imported in cypress/support/commands.ts or cypress/support/commands.js
  • your support entry point, such as cypress/support/e2e.ts, imports ./commands
  • your project is loading the expected support file for the Cypress version you use

See Cypress for the expected setup pattern.

TypeScript errors appear in a JavaScript-only Cypress project

If Cypress tries to process .d.ts files in a JavaScript-only setup, use the workaround documented in Cypress troubleshooting.

Jest tests run, but results seem incomplete

The Jest SDK is designed for component-level evaluation rather than full rendered browser behavior.

What to know

Some rules require runtime browser context, computed styles, or page-level behavior that is not available in Jest-based component tests.

Resolution

  • Use Jest for fast component checks
  • Use Playwright or Cypress for browser-based workflows
  • Review About Our Rules to understand which rules apply in each testing scenario

Results and rule coverage questions

Rules are not running or issues seem to be missed

What to check

  • Whether you are testing a component fragment or a full page
  • Whether the chosen SDK package supports the browser context required by the rule
  • Whether the page state you are testing matches the real condition where the issue appears

Resolution

Testing production versus pre-production HTML

The SDK is primarily designed for development and pre-production workflows, but you can still evaluate production output when needed.

Options

  • Download the page HTML and scan it locally with the CLI
  • Scan a deployed URL directly with the CLI when that is the easiest way to reproduce the issue
  • Reproduce the same state in Playwright or Cypress if the issue appears only after user interaction or login

When to switch tools

If you are blocked in one SDK package, the quickest resolution is sometimes to use a different package that better matches the test scenario.

  • Use CLI for quick installation verification and static page checks
  • Use Jest for fast component-level feedback
  • Use Playwright for authenticated flows, dynamic UI, and realistic browser behavior
  • Use Cypress for end-to-end application workflows in teams already standardized on Cypress

Still blocked?

If you have completed the onboarding steps and are still blocked, gather this information before escalating:

  • Node.js version
  • package manager and version
  • whether you use npm, yarn, or pnpm
  • the SDK package you are installing
  • whether the issue occurs locally, in CI, or both
  • the exact install or runtime error message
  • whether the problem started after refreshing the entitlement token

That information makes it much faster to identify whether the issue is caused by authentication, registry configuration, browser runtime setup, or framework integration.