# Problem code `'render-lost'`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts`, `tables/problems.json` and `services/onsite-scripter/scripts/contract-docs-what-to-do.json` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

A member of [`ProblemCode`](../api/ProblemCode.md) · stable · since 2.0.0

The view stopped drawing: the graphics context was lost and came back neither on its own nor on a fresh canvas. The stage stays blank until the page reloads; offer a reload.

## What to do

The view can't draw again in this page: the stage stays blank until the page reloads, so save the shopper's configuration from your store and offer a reload from a [`session.on('problem')`](../api/Session.on.md) handler.

```ts
session.on('problem', ({ problem }) => { if (problem.code === 'render-lost') showReloadBanner(); }, { signal });
```

## Where the declaration names it

- [`InfoReport.problems`](../api/InfoReport.problems.md): This session's recent Problems, oldest first: the last 50 of any code, plus the last 20 'asset-failed', 'sync-failed' and 'render-lost' entries even when older, so budget codes never push those out.
- [`testing.FakeSession.record`](../api/testing.FakeSession.record.md): For Problems the fake has no route to, such as 'render-lost', 'engine-conflict' or 'frame-budget'.

The set is open: handle a code you don't know (`'other'`).

## Recorded by

- the table row `failure-matrix/cases/context-lost` (`tables/failure-matrix.json`)
- the table row `lifecycle/operations/context-lost` (`tables/lifecycle.json`)
