# v2026.10.40

Fixes across the apps

Fixes from a review of every app used in production: the webhook address answers only the triggers it is for, an hour skipped by a clock change no longer skips a schedule, a retried write no longer duplicates, and `retryDelaySeconds` and the Sub-flow timeout are honored.

## What changed

- A workflow whose trigger isn’t a webhook, form or app’s own webhook answers `404` at the webhook address. See [Call a workflow’s webhook](https://docs.gorunner.io/api/webhooks#refused).

## When you update

GoRunner’s image is private for now. With Docker, [sign in to the registry](https://docs.gorunner.io/self-host/install-docker#sign-in-to-the-registry) first. On Kubernetes, [sign Helm in and give the cluster its pull Secret](https://docs.gorunner.io/self-host/install-kubernetes#make-a-namespace). See [Update](https://docs.gorunner.io/self-host/update) for the whole procedure, or [Install with Docker](https://docs.gorunner.io/self-host/install-docker) and [Install on Kubernetes](https://docs.gorunner.io/self-host/install-kubernetes) to install this version anew.

**Docker**

```bash
# Check the image first: its Digest must be sha256:2bae4c89f578232e38806898bec422a96e19f3e7aa219d925e1a3d50b6690c1f
docker buildx imagetools inspect ghcr.io/ralve-org/gorunner-selfhost:v2026.10.40

# Update
./deploy.sh v2026.10.40
```

**Kubernetes**

```bash
helm upgrade gorunner oci://ghcr.io/ralve-org/charts/gorunner --version 2026.10.40 -f values.yaml
```

## Going back

To go back, run `./deploy.sh v2026.10.39`. There is no migration, so no flag is needed.

Source: https://docs.gorunner.io/changelog/v2026.10.40
