# Set Bundle State

```
POST 
/v1/viz/:viz_id/bundle-state
```

V32 — persist the iframe-reported bundle state on the viz row.

Written by the parent SPA composable (useBundleSignal) after each BUNDLE\_COMPLETED / BUNDLE\_FAILED postMessage from the iframe. Last-writer-wins by `lastUpdatedAt`; older timestamps are ignored and the call returns 200 idempotently.

Read by the publish endpoint to gate FAILED / STALE drafts: a draft whose last bundle failed, or whose bundle predates its files, must not go live.

## Request[​](#request "Lien direct vers request")

## Responses[​](#responses "Lien direct vers Responses")

* 200
* 404
* 422

Successful Response

Not found

Validation Error
