diff --git a/opendbc_repo b/opendbc_repo
index 37a1734d14..9c59c5ac4e 160000
--- a/opendbc_repo
+++ b/opendbc_repo
@@ -1 +1 @@
-Subproject commit 37a1734d14839f5932891eb062ca3447f2aa8b53
+Subproject commit 9c59c5ac4ed76ed6b3c20b634c5ccb5d58524d4f
diff --git a/selfdrive/ui/translations/main_es.ts b/selfdrive/ui/translations/main_es.ts
index 207f21cc75..a2d095c064 100644
--- a/selfdrive/ui/translations/main_es.ts
+++ b/selfdrive/ui/translations/main_es.ts
@@ -681,7 +681,7 @@ Esto puede tardar un minuto.
Firehose
-
+ Firehose
diff --git a/tools/lib/logreader.py b/tools/lib/logreader.py
index 2a0015e6b0..34d3e5ea9f 100755
--- a/tools/lib/logreader.py
+++ b/tools/lib/logreader.py
@@ -13,7 +13,6 @@ import warnings
import zstandard as zstd
from collections.abc import Callable, Iterable, Iterator
-from concurrent.futures import ThreadPoolExecutor, as_completed
from urllib.parse import parse_qs, urlparse
from cereal import log as capnp_log
@@ -202,15 +201,9 @@ def direct_source(file_or_url: str) -> list[LogPath]:
def get_invalid_files(files):
- if not files:
- return
-
- with ThreadPoolExecutor(max_workers=32) as executor:
- future_to_file = {executor.submit(file_exists, file): file for file in files}
- for future in as_completed(future_to_file):
- file = future_to_file[future]
- if not future.result():
- yield file
+ for f in files:
+ if f is None or not file_exists(f):
+ yield f
def check_source(source: Source, *args) -> list[LogPath]: