$ /nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout --kill-after=15s 7200s /nix/store/86n4l5yri6hys3zk2mwy2azcv9prqb8j-nix-2.31.4/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link git+https://codeberg.org/mtlynch/little-moments?ref=email-auth&rev=87e46130862bea89210b3cffc391e46cbbe3f17d#packages.x86_64-linux.e2e-tests --print-build-logs  Downloading cached source from https://cache.nix-ci.com Progress: 1 of 1 downloaded from cache  Downloading cached little-moments-e2e-0.0.1-npm-deps from https://cache.nix-ci.com Downloading cached npm-build-hook from https://cache.nix-ci.com Downloading cached dejavu-fonts-minimal from https://cache.nix-ci.com Downloading cached install-shell-files from https://cache.nix-ci.com Downloading cached mailcap from https://cache.nix-ci.com Downloading cached nodejs-22.21.1-source from https://cache.nix-ci.com Downloading cached tzdata from https://cache.nix-ci.com Downloading cached die-hook from https://cache.nix-ci.com Downloading cached gcc-14.3.0-libgcc from https://cache.nix-ci.com Downloading cached gnu-config-2024-01 from https://cache.nix-ci.com Downloading cached xgcc-14.3.0-libgcc from https://cache.nix-ci.com Downloading cached libunistring from https://cache.nix-ci.com Downloading cached linux-headers from https://cache.nix-ci.com Downloading cached publicsuffix-list-0-unstable-2025-10 from https://cache.nix-ci.com Progress: 0 of 11 built, 1 of 100 downloaded from cache (13 downloading) Progress: 0 of 10 built, 2 of 100 downloaded from cache (12 downloading) Progress: 0 of 10 built, 3 of 100 downloaded from cache (11 downloading) Progress: 0 of 10 built, 4 of 100 downloaded from cache (10 downloading) Progress: 0 of 10 built, 5 of 100 downloaded from cache (9 downloading) Downloading cached dejavu-fonts from https://cache.nix-ci.com Progress: 0 of 10 built, 6 of 100 downloaded from cache (9 downloading) Progress: 0 of 10 built, 7 of 100 downloaded from cache (8 downloading) Downloading cached update-autotools-gnu-config-scripts-hook from https://cache.nix-ci.com Progress: 0 of 10 built, 8 of 100 downloaded from cache (8 downloading) Progress: 0 of 10 built, 9 of 100 downloaded from cache (7 downloading) Progress: 0 of 10 built, 10 of 100 downloaded from cache (6 downloading) Progress: 0 of 10 built, 11 of 100 downloaded from cache (5 downloading) Downloading cached libidn2 from https://cache.nix-ci.com Progress: 0 of 10 built, 12 of 100 downloaded from cache (5 downloading) Progress: 0 of 10 built, 13 of 100 downloaded from cache (4 downloading) Progress: 0 of 9 built, 14 of 100 downloaded from cache (3 downloading) Progress: 0 of 9 built, 15 of 100 downloaded from cache (2 downloading) Downloading cached glibc-2.40 from https://cache.nix-ci.com Progress: 0 of 9 built, 16 of 100 downloaded from cache (2 downloading) Downloading cached fonts.conf from https://cache.nix-ci.com Progress: 0 of 9 built, 17 of 100 downloaded from cache (2 downloading) Progress: 0 of 8 built, 18 of 100 downloaded from cache (1 downloading) Downloading cached attr from https://cache.nix-ci.com Downloading cached bash from https://cache.nix-ci.com Downloading cached brotli-1.1.0-lib from https://cache.nix-ci.com Downloading cached bzip2 from https://cache.nix-ci.com Downloading cached c-ares from https://cache.nix-ci.com Downloading cached ed from https://cache.nix-ci.com Downloading cached expand-response-params from https://cache.nix-ci.com Downloading cached expat from https://cache.nix-ci.com Downloading cached gawk from https://cache.nix-ci.com Downloading cached gcc-14.3.0-lib from https://cache.nix-ci.com Downloading cached gdbm-1.26-lib from https://cache.nix-ci.com Downloading cached glibc-2.40-66-bin from https://cache.nix-ci.com Downloading cached gmp from https://cache.nix-ci.com Downloading cached gnumake from https://cache.nix-ci.com Downloading cached gnused from https://cache.nix-ci.com Progress: 0 of 8 built, 19 of 100 downloaded from cache (15 downloading) Downloading cached keyutils-1.6.3-lib from https://cache.nix-ci.com Progress: 0 of 8 built, 20 of 100 downloaded from cache (15 downloading) Downloading cached libffi from https://cache.nix-ci.com Progress: 0 of 8 built, 21 of 100 downloaded from cache (15 downloading) Downloading cached acl from https://cache.nix-ci.com Progress: 0 of 8 built, 22 of 100 downloaded from cache (15 downloading) Downloading cached libpsl from https://cache.nix-ci.com Progress: 0 of 8 built, 23 of 100 downloaded from cache (15 downloading) Downloading cached libuv from https://cache.nix-ci.com Progress: 0 of 8 built, 24 of 100 downloaded from cache (15 downloading) Downloading cached mpdecimal from https://cache.nix-ci.com Progress: 0 of 8 built, 25 of 100 downloaded from cache (15 downloading) Downloading cached ncurses from https://cache.nix-ci.com Progress: 0 of 8 built, 26 of 100 downloaded from cache (15 downloading) Downloading cached bzip2-1.0.8-bin from https://cache.nix-ci.com Progress: 0 of 8 built, 27 of 100 downloaded from cache (15 downloading) Downloading cached nghttp2-1.67.1-lib from https://cache.nix-ci.com Progress: 0 of 7 built, 28 of 100 downloaded from cache (15 downloading) Downloading cached gzip from https://cache.nix-ci.com Progress: 0 of 7 built, 29 of 100 downloaded from cache (15 downloading) Downloading cached isl from https://cache.nix-ci.com Progress: 0 of 7 built, 30 of 100 downloaded from cache (15 downloading) Downloading cached make-shell-wrapper-hook from https://cache.nix-ci.com Progress: 0 of 7 built, 31 of 100 downloaded from cache (15 downloading) Downloading cached mpfr from https://cache.nix-ci.com Progress: 0 of 7 built, 32 of 100 downloaded from cache (15 downloading) Progress: 0 of 7 built, 33 of 100 downloaded from cache (15 downloading) Downloading cached nghttp3 from https://cache.nix-ci.com Downloading cached gnutar from https://cache.nix-ci.com Progress: 0 of 7 built, 34 of 100 downloaded from cache (15 downloading) Downloading cached oniguruma-6.9.10-lib from https://cache.nix-ci.com Progress: 0 of 7 built, 35 of 100 downloaded from cache (15 downloading) Downloading cached libuv-1.51.0-dev from https://cache.nix-ci.com Progress: 0 of 7 built, 36 of 100 downloaded from cache (15 downloading) Downloading cached openssl from https://cache.nix-ci.com Progress: 0 of 7 built, 37 of 100 downloaded from cache (15 downloading) Progress: 0 of 7 built, 38 of 100 downloaded from cache (15 downloading) Downloading cached patch from https://cache.nix-ci.com Downloading cached pcre2 from https://cache.nix-ci.com Progress: 0 of 7 built, 39 of 100 downloaded from cache (15 downloading) Downloading cached util-linux-minimal-2.41.2-lib from https://cache.nix-ci.com Progress: 0 of 7 built, 40 of 100 downloaded from cache (15 downloading) Downloading cached xz from https://cache.nix-ci.com Progress: 0 of 7 built, 41 of 100 downloaded from cache (15 downloading) Downloading cached zlib from https://cache.nix-ci.com Progress: 0 of 7 built, 42 of 100 downloaded from cache (15 downloading) Downloading cached glibc-2.40-66-dev from https://cache.nix-ci.com Progress: 0 of 7 built, 43 of 100 downloaded from cache (15 downloading) Progress: 0 of 7 built, 44 of 100 downloaded from cache (14 downloading) Progress: 0 of 7 built, 45 of 100 downloaded from cache (13 downloading) Progress: 0 of 7 built, 46 of 100 downloaded from cache (13 downloading) Downloading cached libmpc from https://cache.nix-ci.com Progress: 0 of 7 built, 47 of 100 downloaded from cache (12 downloading) Downloading cached jq from https://cache.nix-ci.com Progress: 0 of 7 built, 48 of 100 downloaded from cache (12 downloading) Downloading cached sqlite from https://cache.nix-ci.com Downloading cached binutils-2.44-lib from https://cache.nix-ci.com Downloading cached file from https://cache.nix-ci.com Downloading cached sqlite-3.50.4-bin from https://cache.nix-ci.com Progress: 0 of 7 built, 49 of 100 downloaded from cache (15 downloading) Downloading cached zlib-1.3.1-dev from https://cache.nix-ci.com Progress: 0 of 7 built, 50 of 100 downloaded from cache (15 downloading) Downloading cached xz-5.8.1-bin from https://cache.nix-ci.com Progress: 0 of 7 built, 51 of 100 downloaded from cache (15 downloading) Downloading cached gnugrep from https://cache.nix-ci.com Progress: 0 of 7 built, 52 of 100 downloaded from cache (15 downloading) Progress: 0 of 7 built, 53 of 100 downloaded from cache (14 downloading) Progress: 0 of 7 built, 54 of 100 downloaded from cache (13 downloading) Progress: 0 of 7 built, 55 of 100 downloaded from cache (12 downloading) Downloading cached jq-1.8.1-bin from https://cache.nix-ci.com Progress: 0 of 7 built, 56 of 100 downloaded from cache (12 downloading) Progress: 0 of 7 built, 57 of 100 downloaded from cache (11 downloading) Progress: 0 of 7 built, 58 of 100 downloaded from cache (10 downloading) Downloading cached nodejs-install-manuals from https://cache.nix-ci.com Progress: 0 of 7 built, 59 of 100 downloaded from cache (10 downloading) Downloading cached gmp-with-cxx from https://cache.nix-ci.com Downloading cached icu4c from https://cache.nix-ci.com Downloading cached patchelf from https://cache.nix-ci.com Downloading cached zstd from https://cache.nix-ci.com Progress: 0 of 7 built, 60 of 100 downloaded from cache (13 downloading) Downloading cached binutils from https://cache.nix-ci.com Progress: 0 of 7 built, 61 of 100 downloaded from cache (13 downloading) Downloading cached gcc from https://cache.nix-ci.com Progress: 0 of 7 built, 62 of 100 downloaded from cache (13 downloading) Progress: 0 of 7 built, 63 of 100 downloaded from cache (12 downloading) Progress: 0 of 7 built, 64 of 100 downloaded from cache (11 downloading) Progress: 0 of 7 built, 65 of 100 downloaded from cache (10 downloading) Progress: 0 of 7 built, 66 of 100 downloaded from cache (9 downloading) Downloading cached sqlite-3.50.4-dev from https://cache.nix-ci.com Progress: 0 of 7 built, 67 of 100 downloaded from cache (9 downloading) Progress: 0 of 7 built, 68 of 100 downloaded from cache (8 downloading) Downloading cached coreutils from https://cache.nix-ci.com Progress: 0 of 7 built, 69 of 100 downloaded from cache (8 downloading) Progress: 0 of 7 built, 70 of 100 downloaded from cache (7 downloading) Progress: 0 of 7 built, 71 of 100 downloaded from cache (6 downloading) Downloading cached krb5-1.22.1-lib from https://cache.nix-ci.com Downloading cached libssh2 from https://cache.nix-ci.com Downloading cached ngtcp2 from https://cache.nix-ci.com Downloading cached openssl-3.6.0-bin from https://cache.nix-ci.com Progress: 0 of 7 built, 72 of 100 downloaded from cache (9 downloading) Downloading cached diffutils from https://cache.nix-ci.com Downloading cached findutils from https://cache.nix-ci.com Progress: 0 of 7 built, 73 of 100 downloaded from cache (10 downloading) Progress: 0 of 7 built, 74 of 100 downloaded from cache (9 downloading) Progress: 0 of 7 built, 75 of 100 downloaded from cache (8 downloading) Downloading cached openssl-3.6.0-dev from https://cache.nix-ci.com Progress: 0 of 7 built, 76 of 100 downloaded from cache (8 downloading) Downloading cached readline from https://cache.nix-ci.com Progress: 0 of 7 built, 77 of 100 downloaded from cache (8 downloading) Progress: 0 of 7 built, 78 of 100 downloaded from cache (7 downloading) Downloading cached curl from https://cache.nix-ci.com Progress: 0 of 7 built, 79 of 100 downloaded from cache (7 downloading) Progress: 0 of 7 built, 80 of 100 downloaded from cache (6 downloading) Downloading cached bash-interactive from https://cache.nix-ci.com Downloading cached python3 from https://cache.nix-ci.com Progress: 0 of 7 built, 81 of 100 downloaded from cache (7 downloading) Progress: 0 of 7 built, 82 of 100 downloaded from cache (6 downloading) Downloading cached prefetch-npm-deps from https://cache.nix-ci.com Progress: 0 of 7 built, 83 of 100 downloaded from cache (6 downloading) Progress: 0 of 7 built, 84 of 100 downloaded from cache (5 downloading) Downloading cached binutils-wrapper from https://cache.nix-ci.com Progress: 0 of 7 built, 85 of 100 downloaded from cache (5 downloading) Progress: 0 of 7 built, 86 of 100 downloaded from cache (4 downloading) Progress: 0 of 7 built, 87 of 100 downloaded from cache (3 downloading) Downloading cached icu4c-76.1-dev from https://cache.nix-ci.com Progress: 0 of 7 built, 88 of 100 downloaded from cache (3 downloading) Downloading cached nodejs from https://cache.nix-ci.com Downloading cached nodejs from https://cache.nix-ci.com Progress: 0 of 7 built, 89 of 100 downloaded from cache (4 downloading) Progress: 0 of 6 built, 90 of 100 downloaded from cache (3 downloading) Downloading cached nodejs-24.11.1-dev from https://cache.nix-ci.com Progress: 0 of 6 built, 91 of 100 downloaded from cache (3 downloading) Downloading cached nodejs-22.21.1-dev from https://cache.nix-ci.com Downloading cached nodejs-install-executables from https://cache.nix-ci.com Progress: 0 of 6 built, 92 of 100 downloaded from cache (4 downloading) Downloading cached npm-install-hook from https://cache.nix-ci.com Progress: 0 of 6 built, 93 of 100 downloaded from cache (4 downloading) Progress: 0 of 5 built, 94 of 100 downloaded from cache (3 downloading) Progress: 0 of 4 built, 95 of 100 downloaded from cache (2 downloading) Progress: 0 of 3 built, 96 of 100 downloaded from cache (1 downloading) Downloading cached gcc-wrapper from https://cache.nix-ci.com Progress: 0 of 3 built, 97 of 100 downloaded from cache (1 downloading) Downloading cached stdenv-linux from https://cache.nix-ci.com Progress: 0 of 3 built, 98 of 100 downloaded from cache (1 downloading) Progress: 0 of 2 built, 99 of 100 downloaded from cache Downloading cached npm-config-hook from https://cache.nix-ci.com Progress: 0 of 2 built, 100 of 100 downloaded from cache Building little-moments-e2e [little-moments-e2e] Phase: unpackPhase [little-moments-e2e] unpacking source archive /nix/store/x5ki1nqbh2bss8hvwxh2yjacg13v0rmb-source [little-moments-e2e] source root is source [little-moments-e2e] Phase: patchPhase [little-moments-e2e] Executing npmConfigHook [little-moments-e2e] Configuring npm [little-moments-e2e] Validating consistency between /build/source/package-lock.json and /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps/package-lock.json [little-moments-e2e] Setting npm_config_cache to /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps [little-moments-e2e] Installing dependencies [little-moments-e2e] npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. [little-moments-e2e] npm warn Unknown env config "platform". This will stop working in the next major version of npm. [little-moments-e2e] npm warn Unknown env config "arch". This will stop working in the next major version of npm. [little-moments-e2e]  [little-moments-e2e] added 100 packages, and audited 101 packages in 664ms [little-moments-e2e]  [little-moments-e2e] 25 packages are looking for funding [little-moments-e2e]  run `npm fund` for details [little-moments-e2e]  [little-moments-e2e] found 0 vulnerabilities [little-moments-e2e] patching script interpreter paths in node_modules [little-moments-e2e] node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/@playwright/test/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" [little-moments-e2e] node_modules/playwright-core/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/playwright-core/lib/utilsBundleImpl/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/sh" [little-moments-e2e] node_modules/ulid/bin/cli.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] node_modules/playwright/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" [little-moments-e2e] npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. [little-moments-e2e] npm warn Unknown env config "platform". This will stop working in the next major version of npm. [little-moments-e2e] npm warn Unknown env config "arch". This will stop working in the next major version of npm. [little-moments-e2e] rebuilt dependencies successfully [little-moments-e2e] patching script interpreter paths in node_modules [little-moments-e2e] Finished npmConfigHook [little-moments-e2e] Phase: updateAutotoolsGnuConfigScriptsPhase [little-moments-e2e] Phase: configurePhase [little-moments-e2e] no configure script, doing nothing [little-moments-e2e] Phase: buildPhase [little-moments-e2e] no Makefile or custom buildPhase, doing nothing [little-moments-e2e] Phase: checkPhase [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied 4ec7957e-6ed0-49f8-9a9a-87d4c735c511-full.avif [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:121: copied 4ec7957e-6ed0-49f8-9a9a-87d4c735c511-250px.jpg [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:121: copied 4ec7957e-6ed0-49f8-9a9a-87d4c735c511-150px.jpg [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied da1a6f06-c8d8-4442-a9d8-98aff80456cb-full.mp4 [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied da1a6f06-c8d8-4442-a9d8-98aff80456cb-thumb-250px.jpg [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied da1a6f06-c8d8-4442-a9d8-98aff80456cb-thumb-150px.jpg [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied bc8b5296-ce5c-42e9-a886-0eaf2e30ee1c-full.mp4 [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied bc8b5296-ce5c-42e9-a886-0eaf2e30ee1c-thumb-250px.jpg [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied bc8b5296-ce5c-42e9-a886-0eaf2e30ee1c-thumb-150px.jpg [little-moments-e2e] 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-full.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:108: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-850px.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-250px.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-150px.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-full.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:108: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-850px.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-250px.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-150px.jpg [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/store/sqlite/sqlite.go:18: reading DB from /build/source/test-imported-media/test-store.db [little-moments-e2e] 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:140: wrote /build/source/test-imported-media/test-store.db [little-moments-e2e] npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. [little-moments-e2e] npm warn Unknown env config "platform". This will stop working in the next major version of npm. [little-moments-e2e] npm warn Unknown env config "arch". This will stop working in the next major version of npm. [little-moments-e2e]  [little-moments-e2e] Running 15 tests using 8 workers [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] ·TTTTTTTTSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. [little-moments-e2e] TTTTTT [little-moments-e2e]  [little-moments-e2e]  1) [chromium] › e2e/auth.spec.ts:13:7 › Authentication › logs in and shows the browse page ─────── [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded. [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:39885/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:39885/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/auth.spec.ts:14:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  2) [chromium] › e2e/auth.spec.ts:20:7 › Authentication › redirects to stored next path after login [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded. [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm\?token=[^&]+$/ [little-moments-e2e]  Received string: "http://127.0.0.1:46755/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   7 × unexpected value "http://127.0.0.1:46755/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  27 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  28 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 29 | await expect(page).toHaveURL(/\/login\/confirm\?token=[^&]+$/); [little-moments-e2e]  | ^ [little-moments-e2e]  30 | [little-moments-e2e]  31 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  32 | [little-moments-e2e]  at /build/source/e2e/auth.spec.ts:29:24 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  3) [chromium] › e2e/auth.spec.ts:39:7 › Authentication › logs out and redirects to the login page [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded. [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:35981/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:35981/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/auth.spec.ts:40:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  4) [chromium] › e2e/auth.spec.ts:47:7 › Authentication › cannot access protected routes after logging out [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded. [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:35715/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   7 × unexpected value "http://127.0.0.1:35715/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/auth.spec.ts:48:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  5) [chromium] › e2e/browse.spec.ts:68:7 › Browse media › shows the imported media entries on the browse page [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:33065/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   7 × unexpected value "http://127.0.0.1:33065/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  6) [chromium] › e2e/browse.spec.ts:81:7 › Browse media › shows media thumbnails from newest to oldest [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:41823/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   7 × unexpected value "http://127.0.0.1:41823/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  7) [chromium] › e2e/browse.spec.ts:92:7 › Browse media › shows a video indicator on video thumbnails only [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:37117/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   7 × unexpected value "http://127.0.0.1:37117/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  8) [chromium] › e2e/browse.spec.ts:113:7 › Browse media › opens the first entry from the browse page and shows its details [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:33535/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:33535/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  9) [chromium] › e2e/browse.spec.ts:135:7 › Browse media › moves through adjacent entries with Previous and Next links [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:43309/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:43309/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  10) [chromium] › e2e/browse.spec.ts:166:7 › Browse media › moves through adjacent entries with left and right arrow keys [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:35333/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:35333/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  11) [chromium] › e2e/browse.spec.ts:187:7 › Browse media › moves through adjacent entries with swipe gestures on mobile [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:35747/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:35747/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  12) [chromium] › e2e/browse.spec.ts:215:7 › Browse media › shows the current media position within the full list [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:37135/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:37135/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  13) [chromium] › e2e/browse.spec.ts:232:7 › Browse media › opens the last entry from the browse page and shows the oldest media [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  62 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  63 | [little-moments-e2e]  > 64 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  65 | await logIn(page); [little-moments-e2e]  66 | }); [little-moments-e2e]  67 | [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:64:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:37193/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:37193/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/browse.spec.ts:65:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  14) [chromium] › e2e/media.spec.ts:10:7 › View media › shows reaction with a tooltip of the exact date [little-moments-e2e]  [little-moments-e2e]  Test timeout of 5000ms exceeded while running "beforeEach" hook. [little-moments-e2e]  [little-moments-e2e]  4 | test.describe.configure({ mode: "parallel" }); [little-moments-e2e]  5 | [little-moments-e2e]  > 6 | test.beforeEach(async ({ page }) => { [little-moments-e2e]  | ^ [little-moments-e2e]  7 | await logIn(page); [little-moments-e2e]  8 | }); [little-moments-e2e]  9 | [little-moments-e2e]  at /build/source/e2e/media.spec.ts:6:8 [little-moments-e2e]  [little-moments-e2e]  Error: expect(page).toHaveURL(expected) failed [little-moments-e2e]  [little-moments-e2e]  Expected pattern: /\/login\/confirm/ [little-moments-e2e]  Received string: "http://127.0.0.1:39043/login" [little-moments-e2e]  [little-moments-e2e]  Call log: [little-moments-e2e]   - Expect "toHaveURL" with timeout 5000ms [little-moments-e2e]   8 × unexpected value "http://127.0.0.1:39043/login" [little-moments-e2e]  [little-moments-e2e]  [little-moments-e2e]  at fixtures.ts:200 [little-moments-e2e]  [little-moments-e2e]  198 | await page.getByLabel("Email address").fill("homer@example.com"); [little-moments-e2e]  199 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  > 200 | await expect(page).toHaveURL(/\/login\/confirm/); [little-moments-e2e]  | ^ [little-moments-e2e]  201 | await page.getByRole("button", { name: "Log in" }).click(); [little-moments-e2e]  202 | await expect(page).toHaveURL("/"); [little-moments-e2e]  203 | } [little-moments-e2e]  at logIn (/build/source/e2e/fixtures.ts:200:22) [little-moments-e2e]  at /build/source/e2e/media.spec.ts:7:5 [little-moments-e2e]  [little-moments-e2e]  attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/video.webm [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  Error Context: e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/error-context.md [little-moments-e2e]  [little-moments-e2e]  attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── [little-moments-e2e]  e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip [little-moments-e2e]  Usage: [little-moments-e2e]  [little-moments-e2e]  npx playwright show-trace e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip [little-moments-e2e]  [little-moments-e2e]  ──────────────────────────────────────────────────────────────────────────────────────────────── [little-moments-e2e]  [little-moments-e2e]  14 failed [little-moments-e2e]  [chromium] › e2e/auth.spec.ts:13:7 › Authentication › logs in and shows the browse page ──────── [little-moments-e2e]  [chromium] › e2e/auth.spec.ts:20:7 › Authentication › redirects to stored next path after login [little-moments-e2e]  [chromium] › e2e/auth.spec.ts:39:7 › Authentication › logs out and redirects to the login page ─ [little-moments-e2e]  [chromium] › e2e/auth.spec.ts:47:7 › Authentication › cannot access protected routes after logging out [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:68:7 › Browse media › shows the imported media entries on the browse page [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:81:7 › Browse media › shows media thumbnails from newest to oldest [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:92:7 › Browse media › shows a video indicator on video thumbnails only [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:113:7 › Browse media › opens the first entry from the browse page and shows its details [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:135:7 › Browse media › moves through adjacent entries with Previous and Next links [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:166:7 › Browse media › moves through adjacent entries with left and right arrow keys [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:187:7 › Browse media › moves through adjacent entries with swipe gestures on mobile [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:215:7 › Browse media › shows the current media position within the full list [little-moments-e2e]  [chromium] › e2e/browse.spec.ts:232:7 › Browse media › opens the last entry from the browse page and shows the oldest media [little-moments-e2e]  [chromium] › e2e/media.spec.ts:10:7 › View media › shows reaction with a tooltip of the exact date [little-moments-e2e]  1 passed (14.6s) Progress: 0 of 1 built (1 failed), 100 of 100 downloaded from cache Cannot build '/nix/store/cs2bbf0n1628bkg8xxkxjg22xwm78vh3-little-moments-e2e-0.0.1.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/xpa9lv2wl0gi3m1rj96vzsbwhygfbih9-little-moments-e2e-0.0.1 Last 755 log lines: > Running phase: unpackPhase > unpacking source archive /nix/store/x5ki1nqbh2bss8hvwxh2yjacg13v0rmb-source > source root is source > Running phase: patchPhase > Executing npmConfigHook > Configuring npm > Validating consistency between /build/source/package-lock.json and /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps/package-lock.json > Setting npm_config_cache to /nix/store/s010d1fi38rq6sq05s7jvvqri9dwn7ci-little-moments-e2e-0.0.1-npm-deps > Installing dependencies > npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. > npm warn Unknown env config "platform". This will stop working in the next major version of npm. > npm warn Unknown env config "arch". This will stop working in the next major version of npm. > > added 100 packages, and audited 101 packages in 664ms > > 25 packages are looking for funding > run `npm fund` for details > > found 0 vulnerabilities > patching script interpreter paths in node_modules > node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/@playwright/test/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash" > node_modules/playwright-core/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/playwright-core/lib/utilsBundleImpl/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/sh" > node_modules/ulid/bin/cli.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > node_modules/playwright/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node" > npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. > npm warn Unknown env config "platform". This will stop working in the next major version of npm. > npm warn Unknown env config "arch". This will stop working in the next major version of npm. > rebuilt dependencies successfully > patching script interpreter paths in node_modules > Finished npmConfigHook > Running phase: updateAutotoolsGnuConfigScriptsPhase > Running phase: configurePhase > no configure script, doing nothing > Running phase: buildPhase > no Makefile or custom buildPhase, doing nothing > Running phase: checkPhase > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied 4ec7957e-6ed0-49f8-9a9a-87d4c735c511-full.avif > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:121: copied 4ec7957e-6ed0-49f8-9a9a-87d4c735c511-250px.jpg > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:121: copied 4ec7957e-6ed0-49f8-9a9a-87d4c735c511-150px.jpg > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied da1a6f06-c8d8-4442-a9d8-98aff80456cb-full.mp4 > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied da1a6f06-c8d8-4442-a9d8-98aff80456cb-thumb-250px.jpg > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied da1a6f06-c8d8-4442-a9d8-98aff80456cb-thumb-150px.jpg > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied bc8b5296-ce5c-42e9-a886-0eaf2e30ee1c-full.mp4 > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied bc8b5296-ce5c-42e9-a886-0eaf2e30ee1c-thumb-250px.jpg > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:128: copied bc8b5296-ce5c-42e9-a886-0eaf2e30ee1c-thumb-150px.jpg > 2026/05/30 20:55:27 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-full.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:108: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-850px.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-250px.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 28f98c2a-a97e-4a4a-9337-ef7e97777eed-150px.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:100: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-full.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:108: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-850px.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-250px.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:114: copied 084b64d7-8cb8-40be-a1df-1ce94afebc48-150px.jpg > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/store/sqlite/sqlite.go:18: reading DB from /build/source/test-imported-media/test-store.db > 2026/05/30 20:55:28 codeberg.org/mtlynch/little-moments/cmd/import-from-tinybeans/main.go:140: wrote /build/source/test-imported-media/test-store.db > npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. > npm warn Unknown env config "platform". This will stop working in the next major version of npm. > npm warn Unknown env config "arch". This will stop working in the next major version of npm. > > Running 15 tests using 8 workers > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > ·TTTTTTTTSkipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set. > TTTTTT > > 1) [chromium] › e2e/auth.spec.ts:13:7 › Authentication › logs in and shows the browse page ─────── > > Test timeout of 5000ms exceeded. > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:39885/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:39885/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/auth.spec.ts:14:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/auth-Authentication-logs-in-and-shows-the-browse-page-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 2) [chromium] › e2e/auth.spec.ts:20:7 › Authentication › redirects to stored next path after login > > Test timeout of 5000ms exceeded. > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm\?token=[^&]+$/ > Received string: "http://127.0.0.1:46755/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  7 × unexpected value "http://127.0.0.1:46755/login" > > > 27 | await page.getByLabel("Email address").fill("homer@example.com"); > 28 | await page.getByRole("button", { name: "Log in" }).click(); > > 29 | await expect(page).toHaveURL(/\/login\/confirm\?token=[^&]+$/); > | ^ > 30 | > 31 | await page.getByRole("button", { name: "Log in" }).click(); > 32 | > at /build/source/e2e/auth.spec.ts:29:24 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/auth-Authentication-redire-2d7b2-tored-next-path-after-login-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 3) [chromium] › e2e/auth.spec.ts:39:7 › Authentication › logs out and redirects to the login page > > Test timeout of 5000ms exceeded. > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:35981/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:35981/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/auth.spec.ts:40:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/auth-Authentication-logs-out-and-redirects-to-the-login-page-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 4) [chromium] › e2e/auth.spec.ts:47:7 › Authentication › cannot access protected routes after logging out > > Test timeout of 5000ms exceeded. > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:35715/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  7 × unexpected value "http://127.0.0.1:35715/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/auth.spec.ts:48:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/auth-Authentication-cannot-a27fd-ed-routes-after-logging-out-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 5) [chromium] › e2e/browse.spec.ts:68:7 › Browse media › shows the imported media entries on the browse page > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:33065/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  7 × unexpected value "http://127.0.0.1:33065/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-shows--02a6e--entries-on-the-browse-page-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 6) [chromium] › e2e/browse.spec.ts:81:7 › Browse media › shows media thumbnails from newest to oldest > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:41823/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  7 × unexpected value "http://127.0.0.1:41823/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-shows--19f8f-nails-from-newest-to-oldest-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 7) [chromium] › e2e/browse.spec.ts:92:7 › Browse media › shows a video indicator on video thumbnails only > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:37117/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  7 × unexpected value "http://127.0.0.1:37117/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-shows--c7537-or-on-video-thumbnails-only-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 8) [chromium] › e2e/browse.spec.ts:113:7 › Browse media › opens the first entry from the browse page and shows its details > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:33535/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:33535/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-opens--542e7--page-and-shows-its-details-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 9) [chromium] › e2e/browse.spec.ts:135:7 › Browse media › moves through adjacent entries with Previous and Next links > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:43309/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:43309/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-moves--c86ee-ith-Previous-and-Next-links-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 10) [chromium] › e2e/browse.spec.ts:166:7 › Browse media › moves through adjacent entries with left and right arrow keys > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:35333/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:35333/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-moves--d7942-h-left-and-right-arrow-keys-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 11) [chromium] › e2e/browse.spec.ts:187:7 › Browse media › moves through adjacent entries with swipe gestures on mobile > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:35747/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:35747/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-moves--23055-th-swipe-gestures-on-mobile-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 12) [chromium] › e2e/browse.spec.ts:215:7 › Browse media › shows the current media position within the full list > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:37135/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:37135/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-shows--fa2ac-sition-within-the-full-list-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 13) [chromium] › e2e/browse.spec.ts:232:7 › Browse media › opens the last entry from the browse page and shows the oldest media > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 62 | test.describe.configure({ mode: "parallel" }); > 63 | > > 64 | test.beforeEach(async ({ page }) => { > | ^ > 65 | await logIn(page); > 66 | }); > 67 | > at /build/source/e2e/browse.spec.ts:64:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:37193/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:37193/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/browse.spec.ts:65:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/browse-Browse-media-opens--bb8a3--and-shows-the-oldest-media-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 14) [chromium] › e2e/media.spec.ts:10:7 › View media › shows reaction with a tooltip of the exact date > > Test timeout of 5000ms exceeded while running "beforeEach" hook. > > 4 | test.describe.configure({ mode: "parallel" }); > 5 | > > 6 | test.beforeEach(async ({ page }) => { > | ^ > 7 | await logIn(page); > 8 | }); > 9 | > at /build/source/e2e/media.spec.ts:6:8 > > Error: expect(page).toHaveURL(expected) failed > > Expected pattern: /\/login\/confirm/ > Received string: "http://127.0.0.1:39043/login" > > Call log: >  - Expect "toHaveURL" with timeout 5000ms >  8 × unexpected value "http://127.0.0.1:39043/login" > > > at fixtures.ts:200 > > 198 | await page.getByLabel("Email address").fill("homer@example.com"); > 199 | await page.getByRole("button", { name: "Log in" }).click(); > > 200 | await expect(page).toHaveURL(/\/login\/confirm/); > | ^ > 201 | await page.getByRole("button", { name: "Log in" }).click(); > 202 | await expect(page).toHaveURL("/"); > 203 | } > at logIn (/build/source/e2e/fixtures.ts:200:22) > at /build/source/e2e/media.spec.ts:7:5 > > attachment #1: video (video/webm) ────────────────────────────────────────────────────────────── > e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/video.webm > ──────────────────────────────────────────────────────────────────────────────────────────────── > > Error Context: e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/error-context.md > > attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── > e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip > Usage: > > npx playwright show-trace e2e-results/media-View-media-shows-rea-844de-a-tooltip-of-the-exact-date-chromium/trace.zip > > ──────────────────────────────────────────────────────────────────────────────────────────────── > > 14 failed > [chromium] › e2e/auth.spec.ts:13:7 › Authentication › logs in and shows the browse page ──────── > [chromium] › e2e/auth.spec.ts:20:7 › Authentication › redirects to stored next path after login > [chromium] › e2e/auth.spec.ts:39:7 › Authentication › logs out and redirects to the login page ─ > [chromium] › e2e/auth.spec.ts:47:7 › Authentication › cannot access protected routes after logging out > [chromium] › e2e/browse.spec.ts:68:7 › Browse media › shows the imported media entries on the browse page > [chromium] › e2e/browse.spec.ts:81:7 › Browse media › shows media thumbnails from newest to oldest > [chromium] › e2e/browse.spec.ts:92:7 › Browse media › shows a video indicator on video thumbnails only > [chromium] › e2e/browse.spec.ts:113:7 › Browse media › opens the first entry from the browse page and shows its details > [chromium] › e2e/browse.spec.ts:135:7 › Browse media › moves through adjacent entries with Previous and Next links > [chromium] › e2e/browse.spec.ts:166:7 › Browse media › moves through adjacent entries with left and right arrow keys > [chromium] › e2e/browse.spec.ts:187:7 › Browse media › moves through adjacent entries with swipe gestures on mobile > [chromium] › e2e/browse.spec.ts:215:7 › Browse media › shows the current media position within the full list > [chromium] › e2e/browse.spec.ts:232:7 › Browse media › opens the last entry from the browse page and shows the oldest media > [chromium] › e2e/media.spec.ts:10:7 › View media › shows reaction with a tooltip of the exact date > 1 passed (14.6s) For full logs, run: nix log /nix/store/cs2bbf0n1628bkg8xxkxjg22xwm78vh3-little-moments-e2e-0.0.1.drv