On Thu, Jan 8, 2026 at 1:39 PM Rihad <[email protected]> wrote: > Hi, guys. Just pg_upgraded our PG from 13.x to 18.1, rebuilt all indexes > concurrently and issued ALTER DATABASE foo REFRESH COLLATION VERSION > Everything's fine on the master server, no warnings etc. Then I set up a > replica using pg_basebackup, and there when trying to 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 COLLATION VERSION, 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 support by 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
