Whonix templates won't update

I can’t seem to get whonix-gw-16 and whonix-ws-16 to update via GUI Qubes Updater. This has persisted over several days.

The Details show a lot of references to salt, but I don’t understand any of it.

(If it makes any difference, I have been away from the machine for several months, so missed many previous updates).

Can anyone help me out?

Details output here:

Updating whonix-gw-16

Error on updating whonix-gw-16: Command ‘[‘sudo’, ‘qubesctl’, ‘–skip-dom0’, ‘–targets=whonix-gw-16’, ‘–show-output’, ‘state.sls’, ‘update.qubes-vm’]’ returned non-zero exit status 20.
whonix-gw-16:
----------
_error:
Failed to return clean data
retcode:
1
stderr:
Traceback (most recent call last):
File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
salt_call()
File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 437, in salt_call
import salt.cli.call
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 3, in
import salt.cli.caller
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 12, in
import salt.channel.client
File “/var/tmp/.root_dd8a91_salt/pyall/salt/channel/client.py”, line 13, in
import salt.crypt
File “/var/tmp/.root_dd8a91_salt/pyall/salt/crypt.py”, line 26, in
import salt.payload
File “/var/tmp/.root_dd8a91_salt/pyall/salt/payload.py”, line 12, in
import salt.loader.context
File “/var/tmp/.root_dd8a91_salt/pyall/salt/loader/init.py”, line 23, in
import salt.utils.event
File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/event.py”, line 67, in
import salt.ext.tornado.iostream
File “/var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/iostream.py”, line 42, in
import urllib3.util.ssl_match_hostname
ModuleNotFoundError: No module named ‘urllib3.util.ssl_match_hostname’
[ERROR ] An un-handled exception was caught by Salt’s global exception handler:
ModuleNotFoundError: No module named ‘urllib3.util.ssl_match_hostname’
Traceback (most recent call last):
File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
salt_call()
File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 437, in salt_call
import salt.cli.call
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 3, in
import salt.cli.caller
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 12, in
import salt.channel.client
File “/var/tmp/.root_dd8a91_salt/pyall/salt/channel/client.py”, line 13, in
import salt.crypt
File “/var/tmp/.root_dd8a91_salt/pyall/salt/crypt.py”, line 26, in
import salt.payload
File “/var/tmp/.root_dd8a91_salt/pyall/salt/payload.py”, line 12, in
import salt.loader.context
File “/var/tmp/.root_dd8a91_salt/pyall/salt/loader/init.py”, line 23, in
import salt.utils.event
File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/event.py”, line 67, in
import salt.ext.tornado.iostream
File “/var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/iostream.py”, line 42, in
import urllib3.util.ssl_match_hostname
ModuleNotFoundError: No module named ‘urllib3.util.ssl_match_hostname’
stdout:

Updating whonix-ws-16

Error on updating whonix-ws-16: Command ‘[‘sudo’, ‘qubesctl’, ‘–skip-dom0’, ‘–targets=whonix-ws-16’, ‘–show-output’, ‘state.sls’, ‘update.qubes-vm’]’ returned non-zero exit status 20.
whonix-ws-16:
----------
_error:
Failed to return clean data
retcode:
1
stderr:
Traceback (most recent call last):
File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
salt_call()
File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 437, in salt_call
import salt.cli.call
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 3, in
import salt.cli.caller
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 12, in
import salt.channel.client
File “/var/tmp/.root_dd8a91_salt/pyall/salt/channel/client.py”, line 13, in
import salt.crypt
File “/var/tmp/.root_dd8a91_salt/pyall/salt/crypt.py”, line 26, in
import salt.payload
File “/var/tmp/.root_dd8a91_salt/pyall/salt/payload.py”, line 12, in
import salt.loader.context
File “/var/tmp/.root_dd8a91_salt/pyall/salt/loader/init.py”, line 23, in
import salt.utils.event
File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/event.py”, line 67, in
import salt.ext.tornado.iostream
File “/var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/iostream.py”, line 42, in
import urllib3.util.ssl_match_hostname
ModuleNotFoundError: No module named ‘urllib3.util.ssl_match_hostname’
[ERROR ] An un-handled exception was caught by Salt’s global exception handler:
ModuleNotFoundError: No module named ‘urllib3.util.ssl_match_hostname’
Traceback (most recent call last):
File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
salt_call()
File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 437, in salt_call
import salt.cli.call
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 3, in
import salt.cli.caller
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 12, in
import salt.channel.client
File “/var/tmp/.root_dd8a91_salt/pyall/salt/channel/client.py”, line 13, in
import salt.crypt
File “/var/tmp/.root_dd8a91_salt/pyall/salt/crypt.py”, line 26, in
import salt.payload
File “/var/tmp/.root_dd8a91_salt/pyall/salt/payload.py”, line 12, in
import salt.loader.context
File “/var/tmp/.root_dd8a91_salt/pyall/salt/loader/init.py”, line 23, in
import salt.utils.event
File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/event.py”, line 67, in
import salt.ext.tornado.iostream
File “/var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/iostream.py”, line 42, in
import urllib3.util.ssl_match_hostname
ModuleNotFoundError: No module named ‘urllib3.util.ssl_match_hostname’
stdout:

Same here. Fixed by switching the template for default-mgmt-dvm to debian-12 instead of fedora-38.
See: Fedora-38-based management qube causes Salt errors when updating certain templates: `Failed to return clean data... ModuleNotFoundError: No module named 'urllib3.util.ssl_match_hostname'` · Issue #8440 · QubesOS/qubes-issues · GitHub

3 Likes

thanks