> For the complete documentation index, see [llms.txt](https://docs.drizz.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drizz.dev/running-tests/caching.md).

# Caching

Drizz reuses how it resolved a step on a screen it has seen before, instead of resolving it again. Cached steps run in a fraction of the time and are the cheapest step category.

|                |                                                                      |
| -------------- | -------------------------------------------------------------------- |
| **Platforms**  | Android · iOS                                                        |
| **In the log** | *"Predicted Action drizzing fast ⚡"*                                 |
| **Speed**      | A fraction of the time of an uncached step                           |
| **Cost**       | Cached steps are the cheapest category; Vision AI the most expensive |
| **Watch out**  | A UI change invalidates the cache for the screens it touched         |

## Prerequisites

None. Caching is enabled per app by Drizz and requires no configuration in a test.

## Behavior

<table data-search="false"><thead><tr><th>Condition</th><th>Behavior</th></tr></thead><tbody><tr><td><strong>Step resolves from cache</strong></td><td>Logged as <em>"Predicted Action drizzing fast ⚡"</em>, completes in a fraction of a second</td></tr><tr><td><strong>Step does not resolve from cache</strong></td><td>Logged with its normal step classification, completes in seconds</td></tr><tr><td><strong>Cost, cached step</strong></td><td>Cheapest step category</td></tr><tr><td><strong>Cost, Vision AI step</strong></td><td>Most expensive step category — see <a href="/pages/wO93UDumZZuCQ72kJzR0">Billing &#x26; tokens</a></td></tr><tr><td><strong>First run of a new test</strong></td><td>No cache. Every step does full resolution</td></tr><tr><td><strong>Second and later runs</strong></td><td>A growing share of steps resolve from cache</td></tr><tr><td><strong>After a UI change</strong></td><td>The cache for the affected screens is invalidated. Those steps run uncached until it rebuilds over subsequent runs</td></tr><tr><td><strong>Stale resolution after a UI change</strong></td><td>A cached step can act on an element as it was on the previous version of the screen</td></tr><tr><td><strong>Enabling</strong></td><td>Per app, by Drizz. Steps that never resolve from cache after repeated runs indicate caching is not on for that package</td></tr><tr><td><strong>Configuration in a test</strong></td><td>None. Caching is not written into or enabled per test</td></tr></tbody></table>

### If a cached step acts on stale UI

1. Re-run the test. The cache updates as the suite runs against the new UI.
2. Re-run once more.
3. If the step is still wrong on the third run, fix the description — see [When a step fails](/reports-and-debugging/when-a-step-fails.md).

## Common mistakes

| What you do                                                 | What happens                                                                  |
| ----------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Benchmark a new suite on its first run                      | You measure the cold path                                                     |
| Estimate cost from the first run's usage                    | Cost drops once the suite is warm and steps resolve from cache                |
| Raise a support ticket when the suite slows after a release | Expected. The UI changed and the cache is rebuilding                          |
| Rewrite descriptions to force a cache hit                   | Caching follows description stability. Write descriptions for clarity         |
| Assume a stale cache when a step fails                      | Check the before-screenshot first. The description is the more frequent cause |
| Run the suite only before a release                         | Fewer runs, less of the suite cached                                          |

## Next

* [Billing & tokens](/your-account/billing-and-tokens.md)
* [When a step fails](/reports-and-debugging/when-a-step-fails.md)
* [Running locally](/running-tests/running-locally.md)

***

*Last updated: 6 August 2026*
