Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1011, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 574, in run
    mw_cars = _read_motorway(p, sale_date)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 518, in _read_motorway
    cars = motorway.read_export(p)
  File "/Users/stevendouglas/BidBrain/bidbrain/readers/motorway.py", line 440, in read_export
    page.wait_for_selector('[data-testid="vehicleCardLink"]', timeout=30000)
  File "/Users/stevendouglas/Library/Python/3.9/lib/python/site-packages/playwright/sync_api/_generated.py", line 8770, in wait_for_selector
    self._sync(
  File "/Users/stevendouglas/Library/Python/3.9/lib/python/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync
    return task.result()
  File "/Users/stevendouglas/Library/Python/3.9/lib/python/site-packages/playwright/_impl/_page.py", line 424, in wait_for_selector
    return await self._main_frame.wait_for_selector(**locals_to_params(locals()))
  File "/Users/stevendouglas/Library/Python/3.9/lib/python/site-packages/playwright/_impl/_frame.py", line 372, in wait_for_selector
    await self._channel.send(
  File "/Users/stevendouglas/Library/Python/3.9/lib/python/site-packages/playwright/_impl/_connection.py", line 69, in send
    return await self._connection.wrap_api_call(
  File "/Users/stevendouglas/Library/Python/3.9/lib/python/site-packages/playwright/_impl/_connection.py", line 559, in wrap_api_call
    raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 30000ms exceeded.
Call log:
  - waiting for locator("[data-testid=\"vehicleCardLink\"]") to be visible

Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 97 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 66 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 32 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 114 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 88 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 97 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1148, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 753, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 75 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1160, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 765, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 113 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1160, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 765, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 83 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1160, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 765, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 49 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1160, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 765, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 137 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1160, in <module>
    run(test_limit=tl)
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 765, in run
    raise RuntimeError(
RuntimeError: Priced 0 of 103 cars, both valuation sources look down. Keeping the previous list rather than overwriting it with an empty one. Re login Cazana (python3 login.py cazana) and Run now.
Traceback (most recent call last):
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 3077, in <module>
    runs.guard("run", lambda: run(test_limit=tl, platforms=plats))
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/stevendouglas/BidBrain/bidbrain/runs.py", line 213, in guard
    fn()
    ~~^^
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 3077, in <lambda>
    runs.guard("run", lambda: run(test_limit=tl, platforms=plats))
                              ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 1476, in run
    cars = readers[key](p, sale_date)  # fail loud, never returns None
  File "/Users/stevendouglas/BidBrain/daily_run.py", line 995, in _read_motorway
    cars = motorway.read_export(p)
  File "/Users/stevendouglas/BidBrain/bidbrain/readers/motorway.py", line 1260, in read_export
    with page.expect_download(timeout=90000) as dl_info:
         ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/playwright/_impl/_sync_base.py", line 85, in __exit__
    self._event.value
  File "/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/playwright/_impl/_sync_base.py", line 59, in value
    raise exception
playwright._impl._errors.TimeoutError: Timeout 90000ms exceeded while waiting for event "download"
=========================== logs ===========================
waiting for event "download"
============================================================
