UnboundLocalError: local variable 'client_token' referenced before assignment

I ran nitropy fido2 list-credentials command to see the list of credentials, entered the PIN and got an error:

$ nitropy fido2 list-credentials
Command line tool to interact with Nitrokey devices 0.4.34
Please provide pin: 
Critical error:
An unhandled exception occurred
	Exception encountered: UnboundLocalError("local variable 'client_token' referenced before assignment")

The second attempt was successful. Firmware version: v1.3.0-alpha.20230320, pynitrokey 0.4.34.
Log:

160        INFO pynitrokey.cli Timestamp: 2023-03-25 20:23:27.983629
160        INFO pynitrokey.cli OS: uname_result(system='Linux', node='user-pc', release='6.2.7-200.fc37.x86_64', version='#1 SMP PREEMPT_DYNAMIC Fri Mar 17 16:16:00 UTC 2023', machine='x86_64')
160        INFO pynitrokey.cli Python version: 3.9.16
161        INFO pynitrokey.cli pynitrokey version: 0.4.34
161        INFO pynitrokey.cli cryptography version: 36.0.2
162        INFO pynitrokey.cli ecdsa version: 0.18.0
163        INFO pynitrokey.cli fido2 version: 1.1.0
163        INFO pynitrokey.cli nrfutil version: 6.1.7
164        INFO pynitrokey.cli pyusb version: 1.2.1
164        INFO pynitrokey.cli spsdk version: 1.7.1
6509      DEBUG fido2.hid.linux Failed opening device /dev/hidraw3
Traceback (most recent call last):
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
PermissionError: [Errno 13] Permission denied: '/dev/hidraw3'
6561      DEBUG fido2.hid.linux Failed opening device /dev/hidraw2
Traceback (most recent call last):
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
PermissionError: [Errno 13] Permission denied: '/dev/hidraw2'
6561      DEBUG fido2.hid.linux Failed opening device /dev/hidraw1
Traceback (most recent call last):
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
PermissionError: [Errno 13] Permission denied: '/dev/hidraw1'
6562      DEBUG fido2.hid.linux Failed opening device /dev/hidraw0
Traceback (most recent call last):
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 98, in list_descriptors
    devices.append(get_descriptor(hidraw))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/fido2/hid/linux.py", line 55, in get_descriptor
    with open(path, "rb") as f:
PermissionError: [Errno 13] Permission denied: '/dev/hidraw0'
6870      DEBUG  fido2.hid Got keepalive status: 01
6926     WARNING pynitrokey.cli An unhandled exception occurred
Traceback (most recent call last):
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/pynitrokey/cli/__init__.py", line 130, in main
    nitropy()
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/pynitrokey/cli/fido2.py", line 211, in list_credentials
    cred_manager = nk_client.cred_mgmt(serial, pin)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/pynitrokey/fido2/client.py", line 362, in cred_mgmt
    return CredentialManagement(device.ctap2, client_pin.protocol, client_token)
UnboundLocalError: local variable 'client_token' referenced before assignment
6932      DEBUG       root print: Critical error:
6932      DEBUG       root print: An unhandled exception occurred
6932      ERROR       root local variable 'client_token' referenced before assignment
Traceback (most recent call last):
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/pynitrokey/cli/__init__.py", line 130, in main
    nitropy()
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/pynitrokey/cli/fido2.py", line 211, in list_credentials
    cred_manager = nk_client.cred_mgmt(serial, pin)
  File "/home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/pynitrokey/fido2/client.py", line 362, in cred_mgmt
    return CredentialManagement(device.ctap2, client_pin.protocol, client_token)
UnboundLocalError: local variable 'client_token' referenced before assignment
6932      DEBUG       root listing all connected devices:
6938      DEBUG       root :: 'Nitrokey FIDO2' keys
6938      DEBUG       root :: 'Nitrokey Start' keys:
6959      DEBUG       root :: 'Nitrokey 3' keys
7176       INFO  libusbsio Loading SIO library: /home/user/.local/pipx/venvs/pynitrokey/lib64/python3.9/site-packages/libusbsio/bin/linux_x86_64/libusbsio.so
7178       INFO  libusbsio HID enumeration[93983559700144]: initialized
7178      DEBUG  libusbsio HID enumeration[93983559700144]: device #0: MasterKeys S
7179      DEBUG  libusbsio HID enumeration[93983559700144]: device #1: MasterKeys S
7179      DEBUG  libusbsio HID enumeration[93983559700144]: device #2: MasterKeys S
7179      DEBUG  libusbsio HID enumeration[93983559700144]: device #3: Nitrokey 3
7179      DEBUG  libusbsio HID enumeration[93983559700144]: device #4: MX Anywhere 2S
7179       INFO  libusbsio HID enumeration[93983559700144]: finished, total 5 devices
7206      DEBUG       root /dev/hidraw4: Nitrokey 3 04B27C285CC66156AD228FBADEECA1FA
7206      DEBUG       root print: --------------------------------------------------------------------------------
7206      DEBUG       root print: Critical error occurred, exiting now
7206      DEBUG       root print: Unexpected? Is this a bug? Would you like to get support/help?
7206      DEBUG       root print: - You can report issues at: https://support.nitrokey.com/
7206      DEBUG       root print: - Writing an e-mail to support@nitrokey.com is also possible
7206      DEBUG       root print: - Please attach the log: '/tmp/nitropy.log.cim87jx8' with any support/help request!
7206      DEBUG       root print: - Please check if you have udev rules installed: https://docs.nitrokey.com/nitrokey3/linux/firmware-update.html#troubleshooting

Hi!
Thank you for the report. This got registered as:

1 Like