This is a bummer. Seems like nitrokey is not supporting python 3.11 that is shipped with Debian 12 Bookworm.
I could recreate the issue and found a fix by using Nix packages. Using a VM for firmware update is not recommended! I have done it many times but this might break anytime.
vagrant box add debian/bookworm64 --provider virtualbox
cat > Vagrantfile <<"eof"
Vagrant.configure("2") do |config|
config.vm.box = "debian/bookworm64"
config.vm.provider "virtualbox" do |vb|
# We need more compile power
vb.cpus = 16
vb.memory = "16384"
# Nitrokey 3 (20a0:42b2)
vb.customize ["usbfilter", "add", "0", "--target", :id, "--name", "Nitrokey 3", "--vendorid", "20a0", "--productid", "42b2"]
# Nitrokey 3 Bootloader (20a0:42e8)
vb.customize ["usbfilter", "add", "1", "--target", :id, "--name", "Nitrokey 3 Bootloader", "--vendorid", "20a0", "--productid", "42e8"]
# NXP Composite Device (20a0:42dd)
vb.customize ["usbfilter", "add", "2", "--target", :id, "--name", "NXP Composite Device", "--vendorid", "20a0", "--productid", "42dd"]
# Enable USB 3
vb.customize ["modifyvm", :id, "--usbxhci", "on"]
end
config.vm.provision "shell", inline: <<-SHELL
sudo apt update
sudo apt upgrade -y
SHELL
end
eof
vagrant up
vagrant ssh
############################################################################################################
# Now on Debian 12 Bookworm
sudo install -d -m755 -o $(id -u) -g $(id -g) /nix
sudo apt install -y curl
curl -L https://nixos.org/nix/install | sh
. /home/vagrant/.nix-profile/etc/profile.d/nix.sh
export NIXPKGS_ALLOW_UNFREE=1
nix-shell -p pynitrokey
sudo /nix/store/vqsk5296ivzynfp315iq8bsirg6l6g25-pynitrokey-0.4.40/bin/nitropy nk3 update
############################################################################################################