QAWOLF_API_KEY is not set
Cause: The CLI could not find an API key in the environment, the system keychain, or the local config file.
Check:
- the
QAWOLF_API_KEY environment variable is set in the current shell
- credentials have been stored locally with
qawolf auth login
- the value has not been overwritten by another shell profile
QA Wolf API rejected the request (HTTP 401)
Cause: The API key is invalid or has been revoked.
Check:
- the key matches one issued for the current workspace
- the key was not truncated or copied with surrounding whitespace
qawolf auth whoami returns the expected workspace
QA Wolf API rejected the request (HTTP 403)
Cause: The API key is valid but does not have access to the requested environment.
Check:
- the key was issued for a workspace that contains this environment
- the environment ID matches one returned by the platform — see where to find it
Could not reach the QA Wolf API
Cause: The CLI could not connect to the platform at QAWOLF_API_URL.
Check:
- the network can reach
https://app.qawolf.com (or the URL configured in QAWOLF_API_URL)
QAWOLF_API_URL does not contain a typo or unexpected trailing path
- corporate proxy and VPN settings allow outbound HTTPS
Flow bundle download link has expired
Cause: The signed URL the CLI received from the platform expired before it downloaded the bundle.
Check:
- re-run
qawolf flows pull --env <env_id> to fetch a fresh link
- network conditions are not slowing the download past the link’s expiration window
Android SDK not found
Cause: qawolf install android could not locate the Android SDK at the path given by ANDROID_HOME or ANDROID_SDK_ROOT.
Check:
ANDROID_HOME is exported in the current shell and points at the SDK root
- the SDK is installed via Android Studio or via the standalone
cmdline-tools package
sdkmanager exists at $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
iOS targets are not supported
Cause: The selected flow targets an iOS device. The CLI does not yet support iOS execution.
Check:
- the flow’s
target is set to a web or Android value
- iOS flows are filtered out of the run with a pattern argument
Could not load @qawolf/testkit
Cause: The runner could not resolve @qawolf/testkit from the project directory.
Check:
@qawolf/testkit is listed in package.json and installed
- the command is being run from the project root, or from a directory inside a pulled environment
Android flows are not supported with --workers > 1
Cause: --workers <n> was greater than 1 while the run included at least one Android flow.
Check:
- rerun the Android flows with
--workers 1
- split the run into a web-only invocation with
--workers <n> and an Android-only invocation with --workers 1
Basic target flow cannot be executed
Cause: The flow targets "Basic", the Node-only platform type. The CLI does not execute Basic flows.
Check:
- the flow has been ported to a supported target, or
- the flow is excluded from the run with a pattern argument
Last modified on September 16, 2026