Troubleshooting
Log Locations
Before diagnosing, know where to look:
| Log | Path |
|---|---|
| Run text log | {run_dir}/run.log |
| Step detail (JSON) | {run_dir}/run-test/step_NNN.json |
| Step screenshot | {run_dir}/run-test/screenshots/step_NNN.png |
| Run summary | {run_dir}/run-test/run_summary.json |
| Session log | {session_dir}/tui.log |
| All sessions | ~/.testmuai/kaneai/sessions/ |
The run_end event in Agent Mode provides session_dir and run_dir directly.
Chrome Issues
"Chrome failed to launch"
Cause: Chrome is not installed, all CDP ports in the 9222–9230 range are in use, or a profile lock from another running Chrome.
Kane CLI manages a Chrome process and connects to it over the Chrome DevTools Protocol (CDP). On macOS it looks under /Applications/Google Chrome.app; on Linux it looks for google-chrome, google-chrome-stable, chromium, and similar binaries; on Windows it looks under Program Files\Google\Chrome\Application\chrome.exe and AppData\Local.
Fix:
- Install Google Chrome if not present
- Check for processes on CDP ports:
lsof -i :9222-9230 - Quit any extra Chrome processes hoarding the 9222–9230 port range
- Pick a different Chrome user-data directory, or quit the Chrome instance using it. See Chrome Management
- If you only need to connect to an already-running Chrome:
kane-cli run "..." --cdp-endpoint http://localhost:9222
"CDP endpoint not reachable"
Cause: Using --cdp-endpoint but Chrome is not running on that port.
Fix: Remove --cdp-endpoint and let Kane CLI manage Chrome automatically. Or start Chrome with remote debugging before running:
google-chrome --remote-debugging-port=9222 &
kane-cli run "..." --cdp-endpoint http://localhost:9222
Chrome opens then closes immediately
Cause: Another Kane CLI instance is already running and holds the Chrome profile lock.
Fix: Check for running kane-cli processes:
ps aux | grep kane-cli
Kill any existing processes, then retry.
Authentication Issues
"Authentication failed" (exit code 2)
Cause: Expired tokens or incorrect credentials.
Fix for interactive use:
- Re-run the login flow:
kane-cli login - Confirm which profile, environment, and token state are active:
If the token is missing or expired and refresh did not succeed, log in again.
kane-cli whoami
Fix for CI / non-interactive use:
Verify both values against the credentials shown in your TestMu AI dashboard, then pass them on the command line:
kane-cli run "<objective>" \
--username "undefined" \
--access-key "undefined"
If they still do not work, regenerate the access key in the dashboard and retry.
"Not configured" on first run
Cause: No profile exists yet.
Fix: Run the login flow:
kane-cli login --username "undefined" --access-key "undefined"
Get credentials from the TestMu AI dashboard > Credentials.
Basic auth not working
Cause: Wrong username or access key.
Fix: Verify your credentials on the TestMu AI dashboard. Username and access key are case-sensitive. Make sure you're using the access key (not the password).
Run Issues
"Run timed out" or "max steps exceeded"
Cause: Objective is too complex, page is slow to load, or --max-steps is too low.
Fix:
- Increase
--timeout:--timeout 300 - Increase
--max-steps:--max-steps 60 - Break the work into smaller objectives. Run several sequential
kane-cli runinvocations, each focused on one logical sub-task. The session keeps the same browser between runs, so state carries over. - Tighten the objective. Vague objectives often cause the agent to wander; describe the target outcome and any required values up front.
Agent repeats the same action
Cause: The agent is stuck in a loop: the page didn't change after the action.
Fix: Rephrase the objective to be more explicit. Add an assertion after the action to confirm state changed:
"click the Save button, assert the page shows 'Saved successfully'"
"Variables not resolving": {{key}} appears literally
Cause: Variable file not loaded, wrong JSON format, or wrong variable key name.
Fix:
- JSON syntax. Variable files are JSON. A missing comma or unquoted key will cause the file to be skipped silently.
- File location. Confirm your file is in the right place — see loading order.
- Inline test. Bypass file loading by passing the variable on the command line:
If the inline form works, the issue is with file loading, not the variable itself.
kane-cli run "log in as {{user}}" \
--variables '{"user":{"value":"alice"}}'
Assertions fail even though the page looks correct
Cause: The assertion phrasing doesn't match what's on the page, or there's a timing issue.
Fix:
- Check the screenshot at
{run_dir}/run-test/screenshots/step_NNN.png: see exactly what the agent saw - Refine the assertion: use
assert the page contains(substring) instead of exact text - Add a wait:
"wait for the confirmation message to appear, then assert..."
Upload Issues
"Upload failed" or "Test Manager error"
Cause: Kane CLI uploads run artifacts to TestMu AI Test Manager at the end of the session. If the upload fails:
Fix:
- Authentication. Re-check
kane-cli whoamiand re-login if needed. Test Manager upload requires a valid token (or basic auth) for the configured environment. - Network connectivity. The upload talks to the TestMu AI control plane and a cloud storage endpoint. Verify outbound HTTPS is not blocked by a proxy or firewall.
- Project is set. The pipeline will not commit a test case without a project. Confirm one is configured:
If
kane-cli config showproject_idis empty, set it withkane-cli config projector pick one in the TUI.
Agent Mode Issues
No NDJSON output / only seeing TUI
Cause: Missing --agent flag.
Fix: Add --agent to your command:
kane-cli run "..." --agent --headless
NDJSON parsing fails: jq errors or unexpected output
Cause: Stderr is mixing with stdout, or you're trying to parse mid-stream events.
Fix: Redirect stderr and use tail -1 to get only the run_end event:
kane-cli run "..." --agent 2>/dev/null | tail -1 | jq .
ask_user event fires and blocks the run
Cause: The objective requires human input in an agent context.
Fix: Rewrite the objective to avoid prompts. For example, instead of "navigate through the sign-up flow", be explicit:
"click Sign Up, fill email with '{{email}}', fill password with '{{password}}', click Create Account"
Installation Issues
kane-cli: command not found after install
Cause: npm global bin directory is not in your PATH.
Fix:
npm config get prefix
# Add to PATH (adjust path based on above output)
export PATH="$(npm config get prefix)/bin:$PATH"
# Make permanent: add to ~/.zshrc or ~/.bashrc
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.zshrc
Installation fails
Cause: Node.js version is below 18.
Fix: Check your version and upgrade:
node --version # Must be 18 or higher
"Update available" Notice
Kane CLI checks the public npm registry for a newer release once every 24 hours. The result is cached locally so the check itself is non-blocking and silent on failure. When a newer version exists, Kane CLI surfaces an "update available" notification with the current and latest versions and a severity label (major, minor, or patch).
The notice is informational — your current version still works. To upgrade, follow the steps in Updates.
Filing a Bug Report
If you encounter behavior that looks like an agent bug (not auth, timeout, or a vague objective), file an issue:
github.com/LambdaTest/kane-cli/issues
Include the following:
| Field | How to Get It |
|---|---|
| Kane CLI version | kane-cli --version |
| OS | macOS (ARM/Intel), Linux (x64/ARM64), Windows (x64) |
| What happened | Describe the behavior |
| Reproduction steps | The exact kane-cli run command and objective |
| Expected behavior | What should have happened |
| Logs | run_summary.json and step_NNN.json from run_dir |
| Screenshot | screenshots/step_NNN.png from run_dir |
Do NOT file bug reports for: auth issues, low timeouts, vague objectives, or site-side errors (CAPTCHAs, 500 errors).
