finalrun doctor to confirm your environment is ready before re-running your tests.
Common errors
Error: No .finalrun/ workspace found
Error: No .finalrun/ workspace found
FinalRun finds your workspace by walking up from your current directory until it finds a folder that contains If the directory is missing, follow the workspace setup guide to initialize your
.finalrun/. If you run finalrun from outside your app repository — or before creating the workspace — it cannot locate the directory.Fix: Make sure your shell is inside the app repository where .finalrun/tests/ exists. You can confirm the structure is in place with:.finalrun/ folder before running any commands.Error: API key not configured
Error: API key not configured
FinalRun reads your AI provider API key from the environment. The key it looks for depends on the provider prefix in your
Fix: Set the correct variable in your shell or in a FinalRun loads
--model value or your .finalrun/config.yaml default.| Model prefix | Required environment variable |
|---|---|
openai/... | OPENAI_API_KEY |
google/... | GOOGLE_API_KEY |
anthropic/... | ANTHROPIC_API_KEY |
.env file at your workspace root. For example, if you are using a Google model:.env from the workspace root (the folder containing .finalrun/). You can also pass the key directly with the --api-key flag to override the environment for a single run.Do not commit
.env to version control. Add .env and .env.* to your .gitignore, keeping .env.example tracked as a template.Error: No Android emulator running
Error: No Android emulator running
FinalRun requires a running Android Virtual Device (AVD) before it can connect and start a test. If no emulator is active when you run a test, FinalRun cannot proceed.Fix: Start an emulator before running your test. You can do this from the command line:Or launch one from the Device Manager in Android Studio. Once the emulator has fully booted, verify that FinalRun can detect it:
Error: scrcpy not found / adb not found
Error: scrcpy not found / adb not found
FinalRun depends on After installation, verify that FinalRun can find all required Android tools:
scrcpy for Android screen recording and adb (Android Debug Bridge) for device communication. If either tool is missing from your PATH, Android tests cannot run.Fix: Install both tools with Homebrew on macOS:Unresolved ${secrets.*} placeholder
Unresolved ${secrets.*} placeholder
When a test spec references a value like
${secrets.email}, FinalRun looks it up in your environment binding file (.finalrun/env/<name>.yaml) and then resolves the underlying variable from your shell environment or .env file. If either piece is missing, the placeholder cannot be resolved.Fix: Check two things:-
The binding is declared in
.finalrun/env/<name>.yamlusing the${ENV_VAR}placeholder syntax: -
The actual value is present in your shell environment or in the workspace-root
.env(or.env.<name>) file:
<name> must match the --env flag you pass (or the env value in .finalrun/config.yaml).Error: App path invalid
Error: App path invalid
The If you omit
--app flag expects a path to an existing binary that matches the target platform: an .apk file for Android or a .app directory for iOS. If the path does not exist or the file type does not match the --platform value, FinalRun rejects it.Fix: Verify the path exists and the file matches the platform you are targeting:--app, FinalRun uses the app identity defined in .finalrun/config.yaml.TTY/terminal issues when running from Claude Code or Cursor
TTY/terminal issues when running from Claude Code or Cursor
In earlier versions of FinalRun, running the CLI from within AI coding agent terminals (such as Claude Code or Cursor) could cause TTY-related errors because those environments do not always provide a standard terminal interface.This issue has been resolved. Upgrade to the latest version of FinalRun to pick up the fix:
Verify host readiness with finalrun doctor
Before running tests, usefinalrun doctor to check that all required tools and platform dependencies are installed and reachable. The command prints a tick/cross summary for each dependency.
adb, emulator, and scrcpy. For iOS (macOS only), FinalRun requires Xcode command line tools with xcrun simctl.
Getting more information
If an error is not covered above or you need more detail during a failing run, use the--debug flag to enable verbose logging:
finalrun start-server to open the visual report UI and inspect screenshots, video, and device logs for the failed run.
If you are still stuck, join the FinalRun community on Slack — the team and other users are active there:
Join the FinalRun Slack community