diff --git a/devine/commands/dl.py b/devine/commands/dl.py
index 056a347..27954f0 100644
--- a/devine/commands/dl.py
+++ b/devine/commands/dl.py
@@ -9,7 +9,6 @@ import re
 import shutil
 import sys
 import time
-import traceback
 from concurrent import futures
 from concurrent.futures import ThreadPoolExecutor
 from copy import deepcopy
@@ -472,12 +471,13 @@ class dl:
                             )):
                                 if download.cancelled():
                                     continue
-                                e = download.exception()
-                                if e:
+                                try:
+                                    download.result()
+                                except Exception:  # noqa
                                     self.DL_POOL_STOP.set()
                                     pool.shutdown(wait=False, cancel_futures=True)
-                                    traceback.print_exception(type(e), e, e.__traceback__)
-                                    self.log.error(f"Download worker threw an unhandled exception: {e!r}")
+                                    self.log.error("Download worker threw an unhandled exception:")
+                                    console.print_exception()
                                     return
                         except KeyboardInterrupt:
                             self.DL_POOL_STOP.set()