Before the error happened, I was…
I was attempting to use the AnkiHub Import Media function, specifically using a Mega link.
Error message (don't change this)
Anki 25.09.4 (d52ca669) (ao)
Python 3.13.5 Qt 6.9.1 PyQt 6.9.1
Platform: macOS-26.6.2-arm64-arm-64bit-Mach-O
Traceback (most recent call last):
File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 152, in raise_exception
raise exception
File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 148, in _on_closures_pending
closure()
~~~~~~~^^
File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 88, in <lambda>
lambda future: self.run_on_main(lambda: on_done(future))
~~~~~~~^^^^^^^^
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/tabs/base.py", line 130, in on_done
self.rootpath = fut.result()
~~~~~~~~~~^^
File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
~~~~~~~~~~~~~~~~~^^
File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/tabs/mega.py", line 29, in create_root_file
return MegaRoot(url)
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 187, in __init__
self.get_data()
~~~~~~~~~~~~~^^
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 205, in get_data
self.search_files(nodes, root_id, recursive=True)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 217, in search_files
key = mega.decrypt_node_key(node["k"], self.shared_key)
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 156, in decrypt_node_key
return decrypt_key(encrypted_key, shared_key)
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 78, in decrypt_key
return sum(
(aes_cbc_decrypt_a32(a[i : i + 4], key) for i in range(0, len(a), 4)), ()
)
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 79, in <genexpr>
(aes_cbc_decrypt_a32(a[i : i + 4], key) for i in range(0, len(a), 4)), ()
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 66, in aes_cbc_decrypt_a32
return str_to_a32(aes_cbc_decrypt(a32_to_str(data), a32_to_str(key)))
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 61, in aes_cbc_decrypt
decrypted += aes.decrypt(data[i : i + 16])
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/libs/pyaes/aes.py", line 399, in decrypt
raise ValueError('ciphertext block must be 16 bytes')
ValueError: ciphertext block must be 16 bytes