Upgrade SigNoz to v0.131.0 with ClickHouse 25.12.5

Self-Hosted Community - This page applies to self-hosted SigNoz without a license.
Self-Hosted Enterprise - This page applies to self-hosted SigNoz with an active license.

Upgrade the ClickHouse behind your self-hosted SigNoz to 25.12.5 before a newer SigNoz release starts requiring it. This is a transitive upgrade: a future signoz-otel-collector release will not run on ClickHouse older than 25.12.5, and a routine SigNoz update will eventually pull it. Doing this ClickHouse upgrade on its own, ahead of that release, keeps the move controlled. It is a significant version jump, so review this guide and back up before upgrading to avoid issues with your existing data. This guide covers both Foundry and the Helm chart.

A future signoz-otel-collector release stores trace attributes as a ClickHouse JSON column (otel-collector#833), and its schema migration uses settings that exist only in 25.12.5. With Foundry, forge and cast block the mismatch.

Upgrade

Step 1: Back up your data

ClickHouse upgrades its on-disk format in place on first start, and downgrades are not guaranteed. Snapshot your data before upgrading: the Kubernetes PersistentVolumes, the Docker volume, or /var/lib/clickhouse (binary). If the upgrade goes wrong, restore that snapshot and roll back to your previous version.

Step 2: Upgrade ClickHouse and SigNoz

Upgrade foundryctl first. It brings the v0.131.0 defaults (ClickHouse 25.12.5) and the compatibility check that blocks an incompatible pairing once the new collector lands:

curl -fsSL https://signoz.io/foundry.sh | bash

Then re-forge and re-apply your existing casting.yaml:

foundryctl cast -f casting.yaml

Or run foundryctl forge -f casting.yaml to render the deployment files into pours/, then apply them with your platform's own command. That apply step varies by mode and flavor (docker compose up -d, kubectl apply, helm upgrade, and so on).

If your casting.yaml pins image versions, the new defaults will not override them (your config wins), so bump the pins yourself, at minimum ClickHouse to 25.12.5. Otherwise the old version sticks and forge flags the mismatch:

spec:
  telemetrystore:
    spec:
      image: clickhouse/clickhouse-server:25.12.5
  telemetrykeeper: # only if you run ClickHouse Keeper
    spec:
      image: clickhouse/clickhouse-keeper:25.12.5

Step 3: Verify the upgrade

  1. Pods and containers are healthy (kubectl get pods -n signoz, docker compose ps, or systemctl status 'signoz-*').
  2. ClickHouse is on the new version: SELECT version();
  3. The signoz-telemetrystore-migrator job finished (no failed or restarting migrator pods).
  4. Telemetry is flowing: open the Meter Explorer and confirm ingestion is recording for logs, traces, and metrics.
  5. SigNoz reports v0.131.0 under Settings.

Troubleshooting

Migrator fails with "Unknown setting 'object_serialization_version'"

If the new collector runs before ClickHouse is on 25.12.5, the signoz-otel-collector pod keeps running, but the signoz-telemetrystore-migrator job fails (Init:Error / CrashLoopBackOff on its sync step):

Code: 115. DB::Exception: Unknown setting 'object_serialization_version'. (UNKNOWN_SETTING)

The migration sets ClickHouse settings (object_serialization_version, object_shared_data_serialization_version) that exist only in 25.12.5. Upgrade ClickHouse to 25.12.5; the migrator completes on its next run.

Getting help

Last updated: June 30, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.