commaai/openpilot · error · Exception
error getting route metadata: cannot find any uploaded logs
Error message
error getting route metadata: cannot find any uploaded logs
What it means
load_route_metadata() needs at least one uploaded log to read initData/carParams from; it takes the first non-None entry of route.log_paths() and fails if none exist. Without uploaded rlogs the clip tool cannot restore params or determine the git origin, so it aborts early with this Exception (note: generic Exception, not RuntimeError).
Source
Thrown at openpilot/tools/clip/run.py:217
if result is None:
raise StopIteration("No more frames")
return result
def stop(self):
self._stop.set()
while not self._queue.empty():
try:
self._queue.get_nowait()
except queue.Empty:
break
self._thread.join(timeout=2.0)
def load_route_metadata(route):
from openpilot.common.params import Params, UnknownKeyName
path = next((item for item in route.log_paths() if item), None)
if not path:
raise Exception('error getting route metadata: cannot find any uploaded logs')
lr = LogReader(path)
init_data, car_params = lr.first('initData'), lr.first('carParams')
params = Params()
for entry in init_data.params.entries:
try:
params.put(entry.key, params.cpp2python(entry.key, entry.value), block=True)
except UnknownKeyName:
pass
origin = init_data.gitRemote.split('/')[3] if len(init_data.gitRemote.split('/')) > 3 else 'unknown'
return {
'version': init_data.version, 'route': route.name.canonical_name,
'car': car_params.carFingerprint if car_params else 'unknown', 'origin': origin,
'branch': init_data.gitBranch, 'commit': init_data.gitCommit[:7], 'modified': str(init_data.dirty).lower(),
}
View on GitHub (pinned to 516ec1e682)
Solutions
- Verify the route exists and is accessible: check route.log_paths() length and contents, and confirm the route appears at comma.ai/userdata
- Re-authenticate (python tools/lib/auth.py) if the API hides logs due to an expired token
- For local-only routes, use a code path that reads local segment dirs instead of load_route_metadata
Example fix
# before
meta = load_route_metadata(Route("b0c9d232|2024-01-01--00-00-00"))
# after
route = Route("b0c9d232|2024-01-01--00-00-00")
if not any(route.log_paths()):
raise SystemExit("route has no uploaded logs; check route name and access")
meta = load_route_metadata(route) Defensive patterns
Strategy: try-catch
Validate before calling
log_paths = [p for p in route.log_paths() if p] assert log_paths, 'route has no uploaded logs - check route name and account access'
Try / catch
try:
meta = load_route_metadata(route)
except Exception as e: # note: raised as generic Exception, not RuntimeError
if 'cannot find any uploaded logs' in str(e):
raise SystemExit('route has no uploaded logs; verify route id and run tools/lib/auth.py')
raise Prevention
- Check route accessibility (owner, upload state) before invoking metadata loading
- Catch generic Exception here - the helper raises bare Exception, so except RuntimeError would miss it
When it happens
Trigger: Calling load_route_metadata(route) for a route whose log_paths() are all None - un-uploaded route, private/bogus dongle id, or wrong route string; API returned empty log listings because the route does not belong to the authenticated account.
Common situations: Route name typo or fabricated route id; route from another user's dongle without access; local-only routes never pushed to comma servers.
Related errors
- No camera file for segment {seg_idx}
- No valid camera paths
- ffmpeg failed: {result.stderr.decode()}
- Unauthorized. Authenticate with openpilot/tools/lib/auth.py
- Unable to parse: {url}
AI-assisted analysis of commaai/openpilot@516ec1e682 (2026-08-15).
Data as JSON: /api/errors/b82bea352998aaee.
Report an issue: GitHub.