this derivation will be built: /nix/store/qkv92h0gzm0gx5yqm5gnn1phkcai866w-python3.14-nixbot-tests.drv error: Cannot build '/nix/store/qkv92h0gzm0gx5yqm5gnn1phkcai866w-python3.14-nixbot-tests.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/fr9s9j4cc2syn9gh48vs6yicx4a541yd-python3.14-nixbot-tests /nix/store/p4nqczqsgmvb1i8px67ssdf1qrcj8l7p-python3.14-nixbot-tests-dist Last 25 log lines: > page.locator("#succeeded-list").get_by_text("zlib-1.3").wait_for() > > # Build-scoped search groups hits and jumps to the matching line. > page.fill("#search-input", "error") > page.locator("#search-results a[data-line]").first.click() > hit = page.locator(".log-lines .logline.hit") > hit.wait_for() > assert hit.get_attribute("id") == "d0-L32" > > # A #d{idx}-L{n} permalink expands the collapsed Succeeded panel, opens > # the toggle-loaded card, waits for its lazy rows, then highlights the > # line -- even though the row did not exist at page load. > page.goto("/repos/github/acme/widget/builds/2/logs/x86_64-linux.bad#d1-L1") > linked = page.locator(".log-lines .logline.hit") > linked.wait_for() > > assert linked.get_attribute("id") == "d1-L1" > E AssertionError: assert 'd0-L32' == 'd1-L1' > E > E - d1-L1 > E + d0-L32 > > nixbot/tests/e2e/test_browse.py:95: AssertionError > =========================== short test summary info ============================ > FAILED nixbot/tests/e2e/test_browse.py::test_structured_log_viewer - Assertio... > ================== 1 failed, 792 passed, 12 skipped in 22.78s ================== For full logs, run: nix log /nix/store/qkv92h0gzm0gx5yqm5gnn1phkcai866w-python3.14-nixbot-tests.drv