On Thu, Jan 8, 2026 at 1:39 PM Rihad <grihad@gmail.com> wrote:
> Hi, guys. Just pg_upgraded our PG from 13.x to 18.1, rebuilt all indexes concurrently and issued ALTER DATABASE foo
REFRESHCOLLATION VERSION
> Everything's fine on the master server, no warnings etc. Then I set up a replica using pg_basebackup, and there when
tryingto access the DB using psql I get:
>
> WARNING: database "foo" has a collation version mismatch
> DETAIL: The database was created using collation version 43.0, but the operating system provides version 34.0.
> HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE foo REFRESH
COLLATIONVERSION, or build PostgreSQL with the right library version.
> The OS are both FreeBSD, but the master runs 14.3, the replica runs 13.5. PostgreSQL packages are built with ICU
supportby default, the versions used are identical: icu-76.1
> Could it be that the OS (libc) needs to be the same version? I hoped it would be enough to use the same ICU.
Depends what Provider you used in those DBs:
https://www.postgresql.org/docs/current/locale.html#LOCALE-PROVIDERS
Having the same ICU is good, but do your DBs use that provider? If
not, and you're using the libc one, then yes, the libc version
matters.
Myself I use the new builtin provider to avoid OS portability issues. --DD