It had been a couple months since updating Arch (bad, I know, but it's headless and I forgot!)
When I went to run an update I saw this error happen...
So I inspected the database - and it was an HTML page!
less /var/lib/pacman/sync/core.db
The .db file clearly should not be a webpage - it turns out the mirror url was stale. So I moved the entire sync directory...
sudo mv /var/lib/pacman/sync /var/lib/pacman/sync.BROKEN
And updated the mirror I was using by commenting out the broken one
Ran the update again - but more things were also stale >.<
(Solution for keyring found https://wiki.archlinux.org/title/Pacman/Package_signing#Upgrade_system_regularly)