# Mina 4.0.3 and 4.0.4: archive nodes must upgrade and backfill skipped blocks

Mina's 4.0.3 hotfix fixes archive nodes that skipped Mainnet blocks from 565083 onwards. Archive operators must run upgrade.sql and backfill the gaps. Version 4.0.4 adds sync and performance fixes but changes nothing in the protocol.

- Published: 2026-11-03T05:05:48Z
- Updated: 2026-11-03T05:05:48Z
- Chains: Mina
- Source: https://github.com/MinaProtocol/mina/releases/tag/4.0.3
- Web page: https://bitbasic.com/news/11-mina-403-and-404-archive-nodes-must-upgrade-and-backfill-skipped-blocks
- By: BitBasic (https://bitbasic.com), run by BitNordic

Mina has put out two node releases in a week. Version 4.0.3, a hotfix released on 23 October 2026, fixes a bug that made archive nodes skip Mainnet blocks. Version 4.0.4, released on 30 October 2026, is a stability and performance release for the networks running since the Mesa hard fork. Neither release changes the protocol: chain IDs, verification keys and proofs are the same as before.

## 4.0.3: archive operators must upgrade

Starting at Mainnet block 565083, archive nodes skipped any block that touched an account whose token symbol was not valid UTF-8. A token symbol or zkApp URI containing a zero byte was cut off at that byte without warning. The release notes name Mainnet blocks 565083, 565084 and 565087 as affected, which left gaps in archive databases. Release 4.0.3 now stores these values exactly as they appear on chain.

The release says all archive node operators should upgrade. The steps are:

1. Stop the archive node.
2. Run `/etc/mina/archive/upgrade.sql` against the archive database.
3. Start the 4.0.3 archive node.
4. Backfill the skipped blocks, either with the missing-blocks guardian or from precomputed block files.

Operators who worked around the bug by setting `PGCLIENTENCODING=LATIN1` have extra steps to check and correct a stored token symbol. Without them, the replayer stops with a ledger hash mismatch. The daemon and Rosetta behave as in 4.0.2.

## 4.0.4: stability and performance

Release 4.0.4 (`4.0.4-c9e2eac`) makes these changes:

- It fixes a common stall in bootstrap that happened when the snarked ledger changed during download.
- Checks on candidate transactions are several times cheaper.
- Nodes now rebuild the protocol state of each incoming block and reject blocks that don't match.
- It fixes unbounded PostgreSQL memory growth on archive nodes.

The release notes do not say block producers must upgrade, and no extra migration is needed for the daemon. Archive operators need to run `upgrade.sql` again, which adds a `genesis_accounts` table and can run while the node is up. A database still on 4.0.2 gets the full 4.0.3 migration from the same script.

## Older operating systems dropped

Both releases ship no packages for Ubuntu 20.04 or Debian 11, which have reached end of life. Supported platforms are Debian 12, Ubuntu 22.04 and 24.04, and Docker.

## What it means

- **Archive and Rosetta operators**, including explorers, indexers and exchanges that rely on archive data, need to upgrade and backfill the missing blocks. Otherwise their history has gaps from block 565083 onwards.
- **Block producers** don't need to act right away. Version 4.0.4 brings fixes to sync and block validation.
- **Delegators** are not affected.

Block production and the current epoch are on the [Mina dashboard](https://bitbasic.com/mina).

## Sources

- [Mina 4.0.3 release notes](https://github.com/MinaProtocol/mina/releases/tag/4.0.3)
- [Mina 4.0.4 release notes](https://github.com/MinaProtocol/mina/releases/tag/4.0.4)
- [BitBasic Mina dashboard](https://bitbasic.com/mina)
