Common Issues

Solutions to frequently encountered problems

Common Issues

Installation

ProblemFix
macOS "unidentified developer"System Preferences → Security → Allow Anyway, or xattr -d com.apple.quarantine ./tkit
Linux permission deniedchmod +x ./tkit
Windows SmartScreen blockClick More infoRun anyway

Configuration

ProblemFix
Config not foundRun from project root, or tkit run --config path/to/testflowkit.yml
Invalid YAMLCheck indentation (spaces only), quote strings with special chars
Element not in configAdd to frontend.elements — names are case-sensitive
Undefined {{ env.* }}Define in env: block or env file; run tkit validate

Element not found

  1. Test selector in DevTools: document.querySelector('#selector')
  2. Add fallback selectors (most reliable first)
  3. Increase frontend.default_timeout
  4. Scroll into view first: the user scrolls to the "element" element
frontend:
  elements:
    login:
      submit_button:
        - "[data-testid='submit']"
        - "#submit-btn"
        - "button[type='submit']"

Browser won't start

  • Ensure Chrome/Edge is installed
  • Try headless: tkit run --headless
  • Playwright: run tkit install after setting driver: "playwright"

API issues

ProblemFix
Connection refusedCheck server is running and base_url is correct
401 UnauthorizedSet auth header or configure security_schemes
TimeoutIncrease apis.default_timeout or endpoint timeout
Wrong endpointVerify "api_name.endpoint_name" matches config keys
And I set the header "Authorization" to "Bearer {{auth_token}}"

Variables

ProblemFix
Variable not substitutedStore before use; check spelling
Empty valueVerify the storing step ran successfully
Not available across scenariosUse global hooks

Debugging

tkit run --debug          # Full request/response payloads
tkit validate             # Check config and env references

Enable screenshots on failure:

frontend:
  screenshot_on_failure: true

Getting help

Open a GitHub issue with version (tkit version), OS, minimal reproduction, and error output.

Next Steps