We ran into the following error on one of our client’s servers that we periodically work on:

root@server:/ # pkg update -f
Updating FreeBSD repository catalogue...
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
pkg: Repository FreeBSD load error: meta cannot be loaded No error: 0
Fetching meta.txz: 100%    916 B   0.9kB/s    00:01    
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
repository FreeBSD has no meta file, using default settings
Fetching packagesite.txz: 100%    6 MiB   6.5MB/s    00:01    
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
pkg: Repository FreeBSD load error: meta cannot be loaded No error: 0
Unable to open created repository FreeBSD
Unable to update repository FreeBSD
Error updating repositories!

How to resolve this? After trying a few different options we eventually settled on re-installing the latest version of the pkg tool. You can identify the most recent packaged version of pkg by looking at the list of compiled packages at https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/

root@server:/ # fetch -qo - https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/ | grep 'href="pkg-[0-9]'
<tr><td class="link"><a href="pkg-1.14.4.txz" title="pkg-1.14.4.txz">pkg-1.14.4.txz</a></td><td class="size">            6786424</td><td class="date">2020-Jun-11 01:07</td></tr>

So we’ve identified (at time of writing) that 1.14.4 is the current version, so to fetch and install we execute:

root@server:/ # fetch https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/pkg-1.14.4.txz
root@server:/ # pkg add -f pkg-1.14.4.txz

Once that is done we end up with a working package system again!