Skip to main content

Troubleshooting

This guide covers common issues and solutions when using TestivAI SDKs and services.

Table of Contents

SDK-Specific Issues

Playwright SDK

Tests hanging after witness() call

  • Cause: Promise not resolving (slow page, large capture)
  • Solution: Check the page finishes loading; raise the test timeout for very tall pages

"window.testivai is not defined"

  • Cause: TestivAI not properly imported or test.use() not configured
  • Solution: Ensure proper setup in your config file

Witness SDK

Browser debugging endpoint not found

❌ Browser debugging endpoint not found

Solution: Make sure Chrome is running with remote debugging:

chrome --remote-debugging-port=9222

Connection timeout

❌ Failed to connect to browser: Connection timeout

Solution:

  1. Check if Chrome is running
  2. Verify the port number (default: 9222)
  3. Check for firewall issues

Cypress

"window.testivaiWitness is not a function"

  • Solution: Ensure Witness SDK is connected before tests run
  • Add to cypress.config.js: chromeWebSecurity: false

CI/CD Issues

GitHub Actions

Chrome not starting in CI

- name: Start Chrome
run: |
google-chrome \
--remote-debugging-port=9222 \
--no-sandbox \
--disable-dev-shm-usage \
--headless &

Jenkins

Environment variables not passed

No credentials are needed — TestivAI runs entirely on disk. Set the mode and run in a single step so the environment survives:

withEnv(['TESTIVAI_MODE=local']) {
sh 'testivai run "npm test"'
}

Baselines live in .testivai/baselines/ in the repo, so make sure the workspace is a full checkout rather than a shallow copy that excludes them.

Performance Issues

Tests running slowly

  1. Use component testing when possible
  2. Add ignore regions for dynamic content
  3. Disable animations during tests
  4. Reduce screenshot size by testing specific components

See also: Stable Baselines — a guide to freezing animations, using ignoreSelectors modes, and tuning tolerance to eliminate flaky diffs.

Memory usage high

  • Playwright: Reuse browser context between tests
  • Witness SDK: Limit concurrent snapshots
  • General: Clear test data regularly

Debug Mode

Enable debug logging to troubleshoot issues:

Playwright SDK

TESTIVAI_DEBUG=true npx playwright test

Witness SDK

TESTIVAI_DEBUG=true npm test
# or
testivai run "npm test" --debug

What debug logs show:

Lines are prefixed with [TestivAI]:

  • The resolved configuration (project config, per-call overrides, effective config, local mode)
  • Which capture path was taken — browser full-page capture or scroll-and-stitch — and the page/viewport dimensions behind that choice
  • How many element styles were captured
  • DOM capture failures (which make the noise hint unavailable)

Common Error Messages

ErrorCauseSolution
"results.json not found"Tests didn't run before testivai reportRun your test suite first (captures land in .testivai/temp/)
"Browser connection failed"Chrome not runningStart Chrome with --remote-debugging-port
"Snapshot timeout"Page loading too slowIncrease timeout or check page

Getting Help

  1. Check debug logs for detailed error information
  2. Search existing issues on GitHub
  3. Ask in GitHub Discussions for community support
  4. Email testivai.app@gmail.com

When reporting issues, please include:

  • SDK version
  • Error message
  • Debug logs (if available)
  • Steps to reproduce
  • Your test framework and version