# Troubleshooting Step Execution Failures

:::lead
Learn how to diagnose locator timeouts, assertion errors, and execution failures during local or cloud test runs.
:::

When an automated test fails during execution, TestOwl captures high-resolution screenshots, execution logs, and full video recordings to help you pinpoint the root cause immediately.

## Step timed out waiting for element

The most common execution failure is a timeout when TestOwl attempts to interact with an element that has not yet rendered or has been relocated in the DOM.

### Diagnostic checklist:
1. **Inspect the step screenshot:** Click on the failed step in the Run Report to view the exact browser state at the moment of failure.
2. **Review Self-Healing logs:** If the application UI changed, check whether TestOwl's self-healing engine attempted to match alternate locators. If the confidence score was below the safety threshold, the runner aborted to prevent accidental misclicks.
3. **Check for asynchronous network delays:** If the target element depends on an API request or client-side hydration, add a **Wait for Element** or **Wait for Network Idle** step before the interaction.
4. **Inspect viewport dimensions:** Responsive elements often collapse into hamburger menus or hide on smaller viewports. Ensure your Environment viewport matches the dimensions used during recording.

## Assertion mismatches and dynamic data

If an assertion step fails (for example, verifying order confirmation text or account balance):
- **Stale test data:** Verify whether the test expects static values that change with every execution (such as current timestamps or order IDs). Use [Variables & Test Data](/docs/data/variables) or regex patterns in assertions rather than hardcoded strings.
- **Race conditions:** Ensure animations or modal transitions have completed before evaluating text assertions.

## Authentication and session drops

If a test case fails on downstream steps due to being redirected back to the login screen:
- **Session timeout:** Verify that auth cookies or JWT tokens have not expired.
- **Reusable Auth Flow:** Structure login steps into a reusable [Flow](/docs/building-tests/flows) and reference it as the first step of each test case.
- **Secrets masking:** Ensure sensitive credentials stored in [Secrets](/docs/data/secrets) are correctly mapped to input fields.

## Analyzing run artifacts

Every execution generates detailed diagnostic data:
- **Video Playback:** Watch the entire execution journey to observe unexpected popups, banners, or timing glitches.
- **Console Logs:** Review browser JavaScript exceptions and network request statuses (4xx, 5xx).
- **Execution Metadata:** Inspect execution duration, environment parameters, and browser version.

Learn more about reading reports in our [Reading Reports Guide](/docs/running-and-results/reports).
