F36 update dnf now broken due to glibc issue after update stopped

Realised I had not updated in ages so did dnf update. seemed to be fine, got as far as
emoved:
kernel-5.19.15-101.fc35.x86_64
kernel-core-5.19.15-101.fc35.x86_64
kernel-devel-5.19.15-101.fc35.x86_64
kernel-modules-5.19.15-101.fc35.x86_64
kernel-modules-extra-5.19.15-101.fc35.x86_64
kmod-nvidia-5.19.15-101.fc35.x86_64-3:515.76-1.fc35.x86_64
then
Failed:
pcp-selinux-6.0.0-1.fc36.x86_64

Now anything to do with dnf gives me
Traceback (most recent call last):
File “/usr/bin/dnf”, line 61, in
from dnf.cli import main
File “/usr/lib/python3.10/site-packages/dnf/init.py”, line 30, in
import dnf.base
File “/usr/lib/python3.10/site-packages/dnf/base.py”, line 29, in
import libdnf.transaction
File “/usr/lib64/python3.10/site-packages/libdnf/init.py”, line 12, in
from . import conf
File “/usr/lib64/python3.10/site-packages/libdnf/conf.py”, line 13, in
from . import _conf
ImportError: /lib64/libc.so.6: version `GLIBC_2.36’ not found (required by /lib64/libjson-c.so.5)

If I go to https://pkgs.org/download/glibc for f36, there is no glibc 2.36, only 2.35.
libjson.c is from a rather heavily used package json-c-0.15-3.fc36.x86_64 so can’t remove that. Why is it wanting a later version of glibc than F36 provides?

How can I recover from this?