# v2026.10.57

What GoRunner keeps, and for how long

Run retention counts from when a run finished, and keeps each workflow’s newest finished run in each environment, on every edition. On Cloud, runs’ automatic credential use is kept for 90 days. A self-hosted or embedded installation keeps it unless you set `AUDIT_CREDENTIAL_USE_RETENTION_DAYS`. A step’s name can be at most 255 characters.

## What changed

- Every edition: a run’s age counts from when it finished, not when it started, so one that waited for weeks keeps its full time. Each workflow keeps its newest finished run in each environment, however old, so a workflow that rarely runs keeps its run page and its failing state. See [Runs](https://docs.gorunner.io/build/runs#how-long-runs-are-kept).
- Cloud: the audit log keeps connection use by runs for 90 days, and each connection’s latest use for longer. A person’s actions and security events are kept. The first rows reach 90 days in early December. See [Audit log](https://docs.gorunner.io/build/audit-log#how-long-it-is-kept).
- Self-hosted and Embed: your audit log stays as it is until you set `AUDIT_CREDENTIAL_USE_RETENTION_DAYS`. It deletes only the credential use GoRunner itself recorded, and each connection keeps its latest use. Empty keeps everything. On Kubernetes it is `telemetry.auditCredentialUseRetentionDays`. See [Settings (.env)](https://docs.gorunner.io/self-host/settings#AUDIT_CREDENTIAL_USE_RETENTION_DAYS).
- Every edition: a step’s `name` or `displayName` over 255 characters is refused with `400` when a workflow is created, updated or imported, or a template is used, and Check a definition reports `step_name_too_long`. A run that reached such a step couldn’t save its steps. One already stored stays and gets a warning, and its runs still lose their steps until it is shortened. See [Workflow definition](https://docs.gorunner.io/api/workflow-definition#steps).
- Self-hosted and Embed: Health warns when Redis reaches 70 % of its `maxmemory`, and two new metrics report it. See [The Health page](https://docs.gorunner.io/self-host/health#services).
- Self-hosted and Embed: the check asks for `pgcrypto` only on a new database. See [Your own database, Redis and storage](https://docs.gorunner.io/self-host/own-stores#your-own-postgresql).

## When you update

If a long-running query holds a table, the update can stop at `Applying migrations`, with the old version still running. Run the same command again.

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:cdf991f79d2f5c88292cf82dc74a7cee771dcda6678c02e1884511939e7e1a7d
docker buildx imagetools inspect ghcr.io/ralve-org/gorunner-selfhost:v2026.10.57

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

**Kubernetes**

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

## Going back

- To go back, run `./deploy.sh --skip-check v2026.10.56`. The older version’s check refuses the database that migrations 125 to 130 changed, and may ask for `pgcrypto`. `--skip-check` is safe here: they change indexes, and remove row-security policies that had no effect, two unused tables and the unused `pgcrypto` extension. The older version needs none of them to run.
- Once an installation has run v2026.10.58, it can’t go back below this version. See [v2026.10.58](https://docs.gorunner.io/changelog/v2026.10.58).

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