[]previous and next page

Deployment id and skew

A rolling deploy can leave a browser that loaded the previous build.

For agentsUpdated

A rolling deploy can leave a browser that loaded the previous build. Every server function call from the browser carries the deployment id of its build in the x-dusk-deployment header. A call from another deployment is refused before it runs, with 409 and the error code DEPLOYMENT_MISMATCH, and the page reloads (skew.reload is true by default). A call without the header is not refused, and an app without an id sends none.

The id is deploymentId in the file, or buildId in dusk({ ... }) (which wins). Without either, the build uses a fingerprint of the source folder and the config file: the same sources give the same id, and a source change gives a new one. Dependencies are not part of the fingerprint, so pin the id yourself when you upgrade a dependency without changing the sources.