{
  "config": {
    "argv": [
      "/usr/bin/node",
      "/app/node_modules/.bin/playwright",
      "test",
      "--project=ui",
      "--output=/workspace/artifacts/e23098f/us/test-output"
    ],
    "configFile": "/app/playwright.config.ts",
    "rootDir": "/app",
    "failOnFlakyTests": false,
    "forbidOnly": false,
    "fullyParallel": false,
    "globalSetup": null,
    "globalTeardown": null,
    "globalTimeout": 0,
    "grep": {},
    "grepInvert": null,
    "maxFailures": 0,
    "metadata": {
      "actualWorkers": 20
    },
    "preserveOutput": "always",
    "projects": [
      {
        "outputDir": "/workspace/artifacts/e23098f/us/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 20
        },
        "id": "ui",
        "name": "ui",
        "testDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      },
      {
        "outputDir": "/workspace/artifacts/e23098f/us/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 20
        },
        "id": "api",
        "name": "api",
        "testDir": "/app/tests/api",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000
      }
    ],
    "filteredProjects": [
      {
        "grep": {},
        "grepInvert": null,
        "outputDir": "/workspace/artifacts/e23098f/us/test-output",
        "repeatEach": 1,
        "retries": 2,
        "metadata": {
          "actualWorkers": 20
        },
        "name": "ui",
        "testDir": "/app/tests/ui",
        "snapshotDir": "/app/tests/ui",
        "testIgnore": [],
        "testMatch": [
          "**/*.spec.ts"
        ],
        "timeout": 30000,
        "use": {
          "browserName": "chromium",
          "baseURL": "http://10.1.105.59",
          "extraHTTPHeaders": {},
          "screenshot": "on",
          "video": "on-first-retry",
          "trace": "on-first-retry"
        },
        "dependencies": [],
        "ignoreSnapshots": false,
        "__projectId": "ui"
      }
    ],
    "quiet": false,
    "reporter": [
      [
        "html",
        {
          "outputFolder": "/workspace/artifacts/e23098f/us/reports/html",
          "open": "never"
        }
      ],
      [
        "json",
        {
          "outputFile": "/workspace/artifacts/e23098f/us/reports/results.json"
        }
      ],
      [
        "list",
        null
      ]
    ],
    "reportSlowTests": {
      "max": 5,
      "threshold": 300000
    },
    "shard": null,
    "tags": [],
    "updateSnapshots": "default",
    "updateSourceMethod": "patch",
    "version": "1.64.1",
    "workers": 32,
    "webServer": null
  },
  "suites": [
    {
      "title": "tests/ui/auth.spec.ts",
      "file": "tests/ui/auth.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "sign-in and premium sections",
          "file": "tests/ui/auth.spec.ts",
          "line": 29,
          "column": 6,
          "specs": [
            {
              "title": "/auth/whoami returns well-formed JSON",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 30,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.814Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-34adcfbb6e371e5c1571",
              "file": "tests/ui/auth.spec.ts",
              "line": 30,
              "column": 7
            },
            {
              "title": "a forged identity header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 13,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.892Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-d16713a710dd32aba362",
              "file": "tests/ui/auth.spec.ts",
              "line": 46,
              "column": 7
            },
            {
              "title": "a forged elect-info-premium group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 11,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.917Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-8b08522ffb6040767729",
              "file": "tests/ui/auth.spec.ts",
              "line": 57,
              "column": 9
            },
            {
              "title": "a forged ei-voter-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 9,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.938Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-331a481ae815f21adbb5",
              "file": "tests/ui/auth.spec.ts",
              "line": 57,
              "column": 9
            },
            {
              "title": "a forged ei-donor-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 8,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.956Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-627faecc86d75e536556",
              "file": "tests/ui/auth.spec.ts",
              "line": 57,
              "column": 9
            },
            {
              "title": "a forged ei-block-viewers group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.974Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-bafaf85fa26bf5a6d3e5",
              "file": "tests/ui/auth.spec.ts",
              "line": 57,
              "column": 9
            },
            {
              "title": "a forged elect-news-curators group header grants nothing where Authentik is off",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 8,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.997Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-05316fe4e949eabf6cf3",
              "file": "tests/ui/auth.spec.ts",
              "line": 57,
              "column": 9
            },
            {
              "title": "/voters/ answers 200 for the test identity",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 173,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.016Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-c6449-s-200-for-the-test-identity-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-e0c978ff2eac96857528",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "/individuals/ answers 200 for the test identity",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 195,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.903Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-57df6-s-200-for-the-test-identity-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-8e763adcb4584d4cc03c",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "/blocks/ answers 200 for the test identity",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 619,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.118Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-e6064-s-200-for-the-test-identity-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-ac0d57b9b95cd8b304be",
              "file": "tests/ui/auth.spec.ts",
              "line": 70,
              "column": 9
            },
            {
              "title": "/voters/ is the voter search page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 152,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.754Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-ff81e-rs-is-the-voter-search-page-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-24cc7566a4f160062737",
              "file": "tests/ui/auth.spec.ts",
              "line": 79,
              "column": 7
            },
            {
              "title": "the premium notice page is not directly reachable",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 99,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.919Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-4eed4-e-is-not-directly-reachable-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-752f790273574f158ca2",
              "file": "tests/ui/auth.spec.ts",
              "line": 86,
              "column": 7
            },
            {
              "title": "homepage premium cards follow the account",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 164,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.027Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-b27b9-um-cards-follow-the-account-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-25a6d4e0f106df1269de",
              "file": "tests/ui/auth.spec.ts",
              "line": 91,
              "column": 7
            },
            {
              "title": "account slot shows the signed-in email where Authentik is on",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 122,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.201Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-and-premium-s-b2077-email-where-Authentik-is-on-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-1e049c825edca23851b9",
              "file": "tests/ui/auth.spec.ts",
              "line": 109,
              "column": 7
            }
          ]
        },
        {
          "title": "sign-in panel",
          "file": "tests/ui/auth.spec.ts",
          "line": 130,
          "column": 6,
          "specs": [
            {
              "title": "/signin/google redirects to the Google flow, or falls back to the sign-in page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 10,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.336Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-8ef04c02a5acbc6b0869",
              "file": "tests/ui/auth.spec.ts",
              "line": 131,
              "column": 7
            },
            {
              "title": "/signin/register goes to the sign-up flow, or falls back to the sign-in page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 69,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.363Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-93dbd48805f61db758bc",
              "file": "tests/ui/auth.spec.ts",
              "line": 148,
              "column": 7
            },
            {
              "title": "the shared identity bar is served and revalidated",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 71,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.447Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-3bb8375e8399bd8ed909",
              "file": "tests/ui/auth.spec.ts",
              "line": 159,
              "column": 7
            },
            {
              "title": "/signin/google only answers GET, and the outpost hop is internal",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 9,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.527Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d748ac400d08b85935ef-f0802db54d500bb3e896",
              "file": "tests/ui/auth.spec.ts",
              "line": 167,
              "column": 7
            },
            {
              "title": "Log In opens the sign-in panel with Google and email",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "needs Authentik on and a signed-out visitor",
                      "location": {
                        "file": "/app/tests/ui/auth.spec.ts",
                        "line": 175,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 136,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.545Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "needs Authentik on and a signed-out visitor",
                          "location": {
                            "file": "/app/tests/ui/auth.spec.ts",
                            "line": 175,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/auth-sign-in-panel-Log-In--c8811-panel-with-Google-and-email-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "d748ac400d08b85935ef-985d1e0afe9b23e56167",
              "file": "tests/ui/auth.spec.ts",
              "line": 173,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/cms-proxy.spec.ts",
      "file": "tests/ui/cms-proxy.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "/api/cms/ proxy",
          "file": "tests/ui/cms-proxy.spec.ts",
          "line": 12,
          "column": 6,
          "specs": [
            {
              "title": "/api/cms/users/me is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 24,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.805Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-cc9bb6a3cfc76f59bc01",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/users is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.876Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-617668a16c2dee63692c",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/users/login is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 6,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.902Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-18de684729d5b7f54b47",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/payload-mcp-api-keys is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 5,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.919Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-b8a6a58d1ac5d4d968f9",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/payload-preferences is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.935Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-ae25edf4804185cce0cf",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/payload-locked-documents is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 6,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.952Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-b50cab05dc798cfacc41",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/posts is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 8,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.968Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-abffd54722acee136ad6",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/media is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.989Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-5b06a815231650bc7724",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/graphql is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 5,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.008Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-ce39e6c13a114fa28f07",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/mcp is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.025Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-eecb42b6f024183a9e65",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/slug-lookup?collection=politicians&path=x is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 5,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.041Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-3a3d7ba9aee59900e4e8",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/politicians/a/b is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 6,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.055Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-e26099ab3e6165e9bf8e",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/politicians/%2e%2e/users/me is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 5,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.069Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-5be9c9a7194b19ecd45f",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/politicians%2F..%2Fusers%2Fme is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 6,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.083Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-2a09439d06bbeb58d327",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "/api/cms/ is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 4,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.098Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-46084719f8cf8fc9e6af",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 30,
              "column": 9
            },
            {
              "title": "writes are 405",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 11,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.111Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-c3e3f0331df33854dcd3",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 39,
              "column": 7
            },
            {
              "title": "the allowed collections reach the CMS",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 1,
                      "parallelIndex": 1,
                      "status": "passed",
                      "duration": 128,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.130Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "71ccbf92d55b4dbfb95f-37e9db234d843b0ff2d8",
              "file": "tests/ui/cms-proxy.spec.ts",
              "line": 46,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/county-filters.spec.ts",
      "file": "tests/ui/county-filters.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "tracts county filter: GEOID option values list the county's tracts",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 120000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "passed",
                  "duration": 2340,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-16T18:51:51.803Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-tracts-coun-8d5fe-es-list-the-county-s-tracts-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "27700f440bd41f34957a-c91732dd519bda18fdc2",
          "file": "tests/ui/county-filters.spec.ts",
          "line": 39,
          "column": 7
        },
        {
          "title": "blocks county filter: GEOID option values list the county's blocks",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 120000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 2,
                  "parallelIndex": 2,
                  "status": "failed",
                  "duration": 15547,
                  "error": {
                    "message": "TimeoutError: page.waitForSelector: Timeout 15000ms exceeded.\nCall log:\n\u001b[2m  - waiting for locator('.block-result, .block-error') to be visible\u001b[22m\n",
                    "stack": "TimeoutError: page.waitForSelector: Timeout 15000ms exceeded.\nCall log:\n\u001b[2m  - waiting for locator('.block-result, .block-error') to be visible\u001b[22m\n\n    at /app/tests/ui/county-filters.spec.ts:63:16",
                    "location": {
                      "file": "/app/tests/ui/county-filters.spec.ts",
                      "column": 16,
                      "line": 63
                    },
                    "snippet": "\u001b[0m \u001b[90m 61 |\u001b[39m\n \u001b[90m 62 |\u001b[39m     \u001b[36mawait\u001b[39m county\u001b[33m.\u001b[39mselectOption(\u001b[33mTRAVIS\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 63 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m`.${kind}-result, .${kind}-error`\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[33mDATA_LOAD_TIMEOUT\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 64 |\u001b[39m     \u001b[36mconst\u001b[39m errors \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`.${kind}-error`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 65 |\u001b[39m     \u001b[36mconst\u001b[39m errorText \u001b[33m=\u001b[39m (\u001b[36mawait\u001b[39m errors\u001b[33m.\u001b[39mcount()) \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m \u001b[33m?\u001b[39m \u001b[36mawait\u001b[39m errors\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mtextContent() \u001b[33m:\u001b[39m \u001b[36mnull\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 66 |\u001b[39m     expect(errorText\u001b[33m,\u001b[39m \u001b[32m`${path} county ${TRAVIS} should not show an error`\u001b[39m)\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\u001b[0m"
                  },
                  "errors": [
                    {
                      "location": {
                        "file": "/app/tests/ui/county-filters.spec.ts",
                        "column": 16,
                        "line": 63
                      },
                      "message": "TimeoutError: page.waitForSelector: Timeout 15000ms exceeded.\nCall log:\n\u001b[2m  - waiting for locator('.block-result, .block-error') to be visible\u001b[22m\n\n\n  61 |\n  62 |     await county.selectOption(TRAVIS);\n> 63 |     await page.waitForSelector(`.${kind}-result, .${kind}-error`, { timeout: DATA_LOAD_TIMEOUT });\n     |                ^\n  64 |     const errors = page.locator(`.${kind}-error`);\n  65 |     const errorText = (await errors.count()) > 0 ? await errors.first().textContent() : null;\n  66 |     expect(errorText, `${path} county ${TRAVIS} should not show an error`).toBeNull();\n    at /app/tests/ui/county-filters.spec.ts:63:16"
                    }
                  ],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-16T18:51:55.069Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-blocks-coun-76060-es-list-the-county-s-blocks-ui/test-failed-1.png"
                    },
                    {
                      "name": "error-context",
                      "contentType": "text/markdown",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-blocks-coun-76060-es-list-the-county-s-blocks-ui/error-context.md"
                    }
                  ],
                  "errorLocation": {
                    "file": "/app/tests/ui/county-filters.spec.ts",
                    "column": 16,
                    "line": 63
                  }
                },
                {
                  "workerIndex": 105,
                  "parallelIndex": 2,
                  "status": "passed",
                  "duration": 2605,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 1,
                  "startTime": "2026-10-16T18:52:11.132Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-blocks-coun-76060-es-list-the-county-s-blocks-ui-retry1/test-finished-1.png"
                    },
                    {
                      "name": "video",
                      "contentType": "video/webm",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-blocks-coun-76060-es-list-the-county-s-blocks-ui-retry1/video.webm"
                    },
                    {
                      "name": "trace",
                      "contentType": "application/zip",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-blocks-coun-76060-es-list-the-county-s-blocks-ui-retry1/trace.zip"
                    }
                  ]
                }
              ],
              "status": "flaky"
            }
          ],
          "id": "27700f440bd41f34957a-f985531d9a6cf726a6b3",
          "file": "tests/ui/county-filters.spec.ts",
          "line": 39,
          "column": 7
        },
        {
          "title": "precincts county filter: GEOID option values list the county's precincts",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 120000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 105,
                  "parallelIndex": 2,
                  "status": "passed",
                  "duration": 584,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-16T18:52:13.976Z",
                  "annotations": [],
                  "attachments": [
                    {
                      "name": "screenshot",
                      "contentType": "image/png",
                      "path": "/workspace/artifacts/e23098f/us/test-output/county-filters-precincts-c-f8a85-list-the-county-s-precincts-ui/test-finished-1.png"
                    }
                  ]
                }
              ],
              "status": "expected"
            }
          ],
          "id": "27700f440bd41f34957a-7c41065a343e42681997",
          "file": "tests/ui/county-filters.spec.ts",
          "line": 39,
          "column": 7
        }
      ]
    },
    {
      "title": "tests/ui/data-contracts.spec.ts",
      "file": "tests/ui/data-contracts.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "graph data contracts",
          "file": "tests/ui/data-contracts.spec.ts",
          "line": 24,
          "column": 6,
          "specs": [
            {
              "title": "county state_fips + county_fips is the GEOID tracts and blocks join on",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 436,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] county state_fips + county_fips is the GEOID tracts and blocks join on: {\"name\":\"Kerr County\",\"state_fips\":\"48\",\"county_fips\":\"265\"}, {\"name\":\"Fisher County\",\"state_fips\":\"48\",\"county_fips\":\"151\"}, {\"name\":\"Schleicher County\",\"state_fips\":\"48\",\"county_fips\":\"413\"}\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.845Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-f384fe1a5980f6fbbab9",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 25,
              "column": 7
            },
            {
              "title": "precincts join on the 5-digit county GEOID",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 40,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.324Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-4429b8eac19c273f24bb",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 50,
              "column": 7
            },
            {
              "title": "candidate ids are UUID5s and carry their FEC id",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 44,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.376Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-0d399e3f265b47191366",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 58,
              "column": 7
            },
            {
              "title": "Party exposes its FEC code",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 13,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.432Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-a452252060391ae22369",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 71,
              "column": 7
            },
            {
              "title": "the graph serves every scalar the schema declares (seeded sample per type)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 240000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 12664,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] scalars:Block: 5000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Candidate: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:CodeSource: 20000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Committee: 0\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Contributor: 20000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:County: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Cycle: 1000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:DataSource: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:District: 5000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Employer: 20000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Individual: 20000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Office: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Organization: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Party: 0\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Place: 1000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:PostalCode: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Precinct: 1000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Tract: 5000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Stage: 5000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:State: 50000\n"
                        },
                        {
                          "text": "[sample seed=e23098f] scalars:Vendor: 1000\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.454Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-83e55b3a887e2ecf6eaf",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 81,
              "column": 7
            },
            {
              "title": "entity counts stay above the accepted baseline",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "passed",
                      "duration": 19,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:05.129Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "370fc745607416148837-d1674ff7d0fddc5795da",
              "file": "tests/ui/data-contracts.spec.ts",
              "line": 162,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/disabled-pages.spec.ts",
      "file": "tests/ui/disabled-pages.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "disabled entity pages",
          "file": "tests/ui/disabled-pages.spec.ts",
          "line": 8,
          "column": 6,
          "specs": [
            {
              "title": "/contributors returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 120,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.824Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-15012-es-contributors-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-eeaf2a96904f5fab5855",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/contributors/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 104,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.849Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-15012-es-contributors-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-4ef4084687b4fd401e0e",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/contributors/any-entity-id/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 97,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.975Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-dad75-s-any-entity-id-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-e3ed295c83582d4283c6",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "homepage has no link or visible card for /contributors/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 164,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.089Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-a3004-ible-card-for-contributors--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-dc932c58cabd7e95e978",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 17,
              "column": 9
            },
            {
              "title": "/codesources returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 104,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.265Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-entity-pages-codesources-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-fb06178d006e6578315a",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/codesources/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 116,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.378Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-entity-pages-codesources-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-8235710cd0b53cf94f3d",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "/codesources/any-entity-id/ returns 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 93,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.509Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-808a2-s-any-entity-id-returns-404-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-d46c47f30cca6317f3ef",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 11,
              "column": 11
            },
            {
              "title": "homepage has no link or visible card for /codesources/",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 142,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.617Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-269ae-sible-card-for-codesources--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-315ac629d40ead7d7e3f",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 17,
              "column": 9
            },
            {
              "title": "homepage still shows enabled entity cards",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 145,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.772Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-839ee--shows-enabled-entity-cards-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-9cd10ec808f3bc4b54f0",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 24,
              "column": 7
            },
            {
              "title": "homepage loads without script errors",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 767,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.928Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-9b095-loads-without-script-errors-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-4bdcb6be185099980649",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 31,
              "column": 7
            },
            {
              "title": "disabled-pages runtime script is served",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 4,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 118,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.706Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/disabled-pages-disabled-en-07214-es-runtime-script-is-served-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "76b2ced8126cfc1f8d6e-41968bac84ec1d02c2e6",
              "file": "tests/ui/disabled-pages.spec.ts",
              "line": 39,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entities.spec.ts",
      "file": "tests/ui/entities.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "us.elect.info entity sections",
          "file": "tests/ui/entities.spec.ts",
          "line": 13,
          "column": 6,
          "specs": [
            {
              "title": "candidates section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 5,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 341,
                      "error": {
                        "message": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:31:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 31
                        },
                        "snippet": "\u001b[0m \u001b[90m 29 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 31 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 32 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 33 |\u001b[39m     }\n \u001b[90m 34 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 31
                          },
                          "message": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  29 |     for (const href of randomLinks) {\n  30 |       const entityResponse = await page.goto(toRelativePath(href));\n> 31 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  32 |       await expect(page.locator('h1')).toBeVisible();\n  33 |     }\n  34 |   });\n    at /app/tests/ui/entities.spec.ts:31:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] candidates section - index and random pages: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/, /politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/, /politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.879Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 31
                      }
                    },
                    {
                      "workerIndex": 16,
                      "parallelIndex": 17,
                      "status": "failed",
                      "duration": 468,
                      "error": {
                        "message": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:31:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 31
                        },
                        "snippet": "\u001b[0m \u001b[90m 29 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 31 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 32 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 33 |\u001b[39m     }\n \u001b[90m 34 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 31
                          },
                          "message": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  29 |     for (const href of randomLinks) {\n  30 |       const entityResponse = await page.goto(toRelativePath(href));\n> 31 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  32 |       await expect(page.locator('h1')).toBeVisible();\n  33 |     }\n  34 |   });\n    at /app/tests/ui/entities.spec.ts:31:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] candidates section - index and random pages: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/, /politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/, /politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:53.830Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 31
                      }
                    },
                    {
                      "workerIndex": 27,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 247,
                      "error": {
                        "message": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:31:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 31
                        },
                        "snippet": "\u001b[0m \u001b[90m 29 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 31 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 32 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 33 |\u001b[39m     }\n \u001b[90m 34 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 31
                          },
                          "message": "Error: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  29 |     for (const href of randomLinks) {\n  30 |       const entityResponse = await page.goto(toRelativePath(href));\n> 31 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  32 |       await expect(page.locator('h1')).toBeVisible();\n  33 |     }\n  34 |   });\n    at /app/tests/ui/entities.spec.ts:31:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] candidates section - index and random pages: /politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/, /politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/, /politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:54.870Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-54da5-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 31
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-27dbb3fc8778de5a92d1",
              "file": "tests/ui/entities.spec.ts",
              "line": 15,
              "column": 7
            },
            {
              "title": "committees section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 33,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 404,
                      "error": {
                        "message": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:52:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 52
                        },
                        "snippet": "\u001b[0m \u001b[90m 50 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 51 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 52 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 53 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m     }\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 52
                          },
                          "message": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  50 |     for (const href of randomLinks) {\n  51 |       const entityResponse = await page.goto(toRelativePath(href));\n> 52 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  53 |       await expect(page.locator('h1')).toBeVisible();\n  54 |     }\n  55 |   });\n    at /app/tests/ui/entities.spec.ts:52:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] committees section - index and random pages: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/, /committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/, /committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:55.910Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 52
                      }
                    },
                    {
                      "workerIndex": 41,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 522,
                      "error": {
                        "message": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:52:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 52
                        },
                        "snippet": "\u001b[0m \u001b[90m 50 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 51 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 52 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 53 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m     }\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 52
                          },
                          "message": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  50 |     for (const href of randomLinks) {\n  51 |       const entityResponse = await page.goto(toRelativePath(href));\n> 52 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  53 |       await expect(page.locator('h1')).toBeVisible();\n  54 |     }\n  55 |   });\n    at /app/tests/ui/entities.spec.ts:52:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] committees section - index and random pages: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/, /committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/, /committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:56.945Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 52
                      }
                    },
                    {
                      "workerIndex": 50,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 240,
                      "error": {
                        "message": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:52:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 52
                        },
                        "snippet": "\u001b[0m \u001b[90m 50 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 51 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 52 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 53 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m     }\n \u001b[90m 55 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 52
                          },
                          "message": "Error: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  50 |     for (const href of randomLinks) {\n  51 |       const entityResponse = await page.goto(toRelativePath(href));\n> 52 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  53 |       await expect(page.locator('h1')).toBeVisible();\n  54 |     }\n  55 |   });\n    at /app/tests/ui/entities.spec.ts:52:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] committees section - index and random pages: /committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/, /committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/, /committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:58.299Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-9ea35-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 52
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-e974c5cf3a3265485947",
              "file": "tests/ui/entities.spec.ts",
              "line": 36,
              "column": 7
            },
            {
              "title": "parties section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 61,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 317,
                      "error": {
                        "message": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:73:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 73
                        },
                        "snippet": "\u001b[0m \u001b[90m 71 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 72 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 73 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 74 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 75 |\u001b[39m     }\n \u001b[90m 76 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 73
                          },
                          "message": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  71 |     for (const href of randomLinks) {\n  72 |       const entityResponse = await page.goto(toRelativePath(href));\n> 73 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  74 |       await expect(page.locator('h1')).toBeVisible();\n  75 |     }\n  76 |   });\n    at /app/tests/ui/entities.spec.ts:73:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] parties section - index and random pages: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/, /parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/, /parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.745Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 73
                      }
                    },
                    {
                      "workerIndex": 68,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 403,
                      "error": {
                        "message": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:73:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 73
                        },
                        "snippet": "\u001b[0m \u001b[90m 71 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 72 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 73 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 74 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 75 |\u001b[39m     }\n \u001b[90m 76 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 73
                          },
                          "message": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  71 |     for (const href of randomLinks) {\n  72 |       const entityResponse = await page.goto(toRelativePath(href));\n> 73 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  74 |       await expect(page.locator('h1')).toBeVisible();\n  75 |     }\n  76 |   });\n    at /app/tests/ui/entities.spec.ts:73:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] parties section - index and random pages: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/, /parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/, /parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:00.998Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 73
                      }
                    },
                    {
                      "workerIndex": 75,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 256,
                      "error": {
                        "message": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:73:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 73
                        },
                        "snippet": "\u001b[0m \u001b[90m 71 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 72 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 73 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 74 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 75 |\u001b[39m     }\n \u001b[90m 76 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 73
                          },
                          "message": "Error: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  71 |     for (const href of randomLinks) {\n  72 |       const entityResponse = await page.goto(toRelativePath(href));\n> 73 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  74 |       await expect(page.locator('h1')).toBeVisible();\n  75 |     }\n  76 |   });\n    at /app/tests/ui/entities.spec.ts:73:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] parties section - index and random pages: /parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/, /parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/, /parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:02.388Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-de35a-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 73
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-10bf5643f2069b30d1e6",
              "file": "tests/ui/entities.spec.ts",
              "line": 57,
              "column": 7
            },
            {
              "title": "offices section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 79,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 220,
                      "error": {
                        "message": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:94:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 94
                        },
                        "snippet": "\u001b[0m \u001b[90m 92 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 93 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 94 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 95 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 96 |\u001b[39m     }\n \u001b[90m 97 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 94
                          },
                          "message": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  92 |     for (const href of randomLinks) {\n  93 |       const entityResponse = await page.goto(toRelativePath(href));\n> 94 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  95 |       await expect(page.locator('h1')).toBeVisible();\n  96 |     }\n  97 |   });\n    at /app/tests/ui/entities.spec.ts:94:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] offices section - index and random pages: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/, /offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/, /offices/b279284d-a3bf-24a2-94b8-0322becdccf4/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:03.728Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 94
                      }
                    },
                    {
                      "workerIndex": 87,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 379,
                      "error": {
                        "message": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:94:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 94
                        },
                        "snippet": "\u001b[0m \u001b[90m 92 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 93 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 94 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 95 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 96 |\u001b[39m     }\n \u001b[90m 97 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 94
                          },
                          "message": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  92 |     for (const href of randomLinks) {\n  93 |       const entityResponse = await page.goto(toRelativePath(href));\n> 94 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  95 |       await expect(page.locator('h1')).toBeVisible();\n  96 |     }\n  97 |   });\n    at /app/tests/ui/entities.spec.ts:94:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] offices section - index and random pages: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/, /offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/, /offices/b279284d-a3bf-24a2-94b8-0322becdccf4/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:05.090Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 94
                      }
                    },
                    {
                      "workerIndex": 92,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 237,
                      "error": {
                        "message": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:94:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 94
                        },
                        "snippet": "\u001b[0m \u001b[90m 92 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 93 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 94 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 95 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 96 |\u001b[39m     }\n \u001b[90m 97 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 94
                          },
                          "message": "Error: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  92 |     for (const href of randomLinks) {\n  93 |       const entityResponse = await page.goto(toRelativePath(href));\n> 94 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n     |                                                                                     ^\n  95 |       await expect(page.locator('h1')).toBeVisible();\n  96 |     }\n  97 |   });\n    at /app/tests/ui/entities.spec.ts:94:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] offices section - index and random pages: /offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/, /offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/, /offices/b279284d-a3bf-24a2-94b8-0322becdccf4/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:06.743Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-430dd-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 94
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-57c837c2cf446c42d558",
              "file": "tests/ui/entities.spec.ts",
              "line": 78,
              "column": 7
            },
            {
              "title": "districts section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 96,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 749,
                      "error": {
                        "message": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:136:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 136
                        },
                        "snippet": "\u001b[0m \u001b[90m 134 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 135 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 136 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 137 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 138 |\u001b[39m     }\n \u001b[90m 139 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 136
                          },
                          "message": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  134 |     for (const href of randomLinks) {\n  135 |       const entityResponse = await page.goto(toRelativePath(href));\n> 136 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  137 |       await expect(page.locator('h1')).toBeVisible();\n  138 |     }\n  139 |   });\n    at /app/tests/ui/entities.spec.ts:136:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] districts section - index and random pages: /districts/be832aae-2486-19a2-2041-a841754be3c1/, /districts/e2e3fbeb-18f7-36e7-8f1a-3949a5683e83/, /districts/9624f2be-5068-c652-5bfd-09d0b0c7a914/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:08.071Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 136
                      }
                    },
                    {
                      "workerIndex": 100,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 908,
                      "error": {
                        "message": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:136:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 136
                        },
                        "snippet": "\u001b[0m \u001b[90m 134 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 135 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 136 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 137 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 138 |\u001b[39m     }\n \u001b[90m 139 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 136
                          },
                          "message": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  134 |     for (const href of randomLinks) {\n  135 |       const entityResponse = await page.goto(toRelativePath(href));\n> 136 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  137 |       await expect(page.locator('h1')).toBeVisible();\n  138 |     }\n  139 |   });\n    at /app/tests/ui/entities.spec.ts:136:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] districts section - index and random pages: /districts/be832aae-2486-19a2-2041-a841754be3c1/, /districts/e2e3fbeb-18f7-36e7-8f1a-3949a5683e83/, /districts/9624f2be-5068-c652-5bfd-09d0b0c7a914/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:09.440Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 136
                      }
                    },
                    {
                      "workerIndex": 104,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 562,
                      "error": {
                        "message": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:136:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 136
                        },
                        "snippet": "\u001b[0m \u001b[90m 134 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 135 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 136 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 137 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 138 |\u001b[39m     }\n \u001b[90m 139 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 136
                          },
                          "message": "Error: /districts/be832aae-2486-19a2-2041-a841754be3c1/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  134 |     for (const href of randomLinks) {\n  135 |       const entityResponse = await page.goto(toRelativePath(href));\n> 136 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  137 |       await expect(page.locator('h1')).toBeVisible();\n  138 |     }\n  139 |   });\n    at /app/tests/ui/entities.spec.ts:136:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] districts section - index and random pages: /districts/be832aae-2486-19a2-2041-a841754be3c1/, /districts/e2e3fbeb-18f7-36e7-8f1a-3949a5683e83/, /districts/9624f2be-5068-c652-5bfd-09d0b0c7a914/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:11.076Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-f70f2-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 136
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-0603cede9ea0f43c33a6",
              "file": "tests/ui/entities.spec.ts",
              "line": 99,
              "column": 7
            },
            {
              "title": "states section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 110,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 927,
                      "error": {
                        "message": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:165:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 165
                        },
                        "snippet": "\u001b[0m \u001b[90m 163 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 164 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 165 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 166 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 167 |\u001b[39m     }\n \u001b[90m 168 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 165
                          },
                          "message": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  163 |     for (const href of randomLinks) {\n  164 |       const entityResponse = await page.goto(toRelativePath(href));\n> 165 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  166 |       await expect(page.locator('h1')).toBeVisible();\n  167 |     }\n  168 |   });\n    at /app/tests/ui/entities.spec.ts:165:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] states section - index and random pages: /states/ca/, /states/il/, /states/ky/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:12.704Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 165
                      }
                    },
                    {
                      "workerIndex": 115,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 1684,
                      "error": {
                        "message": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:165:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 165
                        },
                        "snippet": "\u001b[0m \u001b[90m 163 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 164 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 165 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 166 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 167 |\u001b[39m     }\n \u001b[90m 168 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 165
                          },
                          "message": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  163 |     for (const href of randomLinks) {\n  164 |       const entityResponse = await page.goto(toRelativePath(href));\n> 165 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  166 |       await expect(page.locator('h1')).toBeVisible();\n  167 |     }\n  168 |   });\n    at /app/tests/ui/entities.spec.ts:165:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] states section - index and random pages: /states/ca/, /states/il/, /states/ky/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:14.282Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 165
                      }
                    },
                    {
                      "workerIndex": 120,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 837,
                      "error": {
                        "message": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:165:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 165
                        },
                        "snippet": "\u001b[0m \u001b[90m 163 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 164 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 165 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 166 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 167 |\u001b[39m     }\n \u001b[90m 168 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 165
                          },
                          "message": "Error: /states/ca/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  163 |     for (const href of randomLinks) {\n  164 |       const entityResponse = await page.goto(toRelativePath(href));\n> 165 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  166 |       await expect(page.locator('h1')).toBeVisible();\n  167 |     }\n  168 |   });\n    at /app/tests/ui/entities.spec.ts:165:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] states section - index and random pages: /states/ca/, /states/il/, /states/ky/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:16.400Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-02398-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 165
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-859b9ebc18597fc7cd99",
              "file": "tests/ui/entities.spec.ts",
              "line": 141,
              "column": 7
            },
            {
              "title": "elections section - index and random pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 124,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 220,
                      "error": {
                        "message": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:186:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 186
                        },
                        "snippet": "\u001b[0m \u001b[90m 184 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 185 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 186 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 187 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 188 |\u001b[39m     }\n \u001b[90m 189 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 186
                          },
                          "message": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  184 |     for (const href of randomLinks) {\n  185 |       const entityResponse = await page.goto(toRelativePath(href));\n> 186 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  187 |       await expect(page.locator('h1')).toBeVisible();\n  188 |     }\n  189 |   });\n    at /app/tests/ui/entities.spec.ts:186:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] elections section - index and random pages: /elections/1996/, /elections/2016/, /elections/2004/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:17.791Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 186
                      }
                    },
                    {
                      "workerIndex": 126,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 343,
                      "error": {
                        "message": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:186:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 186
                        },
                        "snippet": "\u001b[0m \u001b[90m 184 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 185 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 186 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 187 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 188 |\u001b[39m     }\n \u001b[90m 189 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 186
                          },
                          "message": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  184 |     for (const href of randomLinks) {\n  185 |       const entityResponse = await page.goto(toRelativePath(href));\n> 186 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  187 |       await expect(page.locator('h1')).toBeVisible();\n  188 |     }\n  189 |   });\n    at /app/tests/ui/entities.spec.ts:186:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] elections section - index and random pages: /elections/1996/, /elections/2016/, /elections/2004/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:18.592Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 186
                      }
                    },
                    {
                      "workerIndex": 128,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 245,
                      "error": {
                        "message": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:186:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 186
                        },
                        "snippet": "\u001b[0m \u001b[90m 184 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 185 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 186 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 187 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 188 |\u001b[39m     }\n \u001b[90m 189 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 186
                          },
                          "message": "Error: /elections/1996/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  184 |     for (const href of randomLinks) {\n  185 |       const entityResponse = await page.goto(toRelativePath(href));\n> 186 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  187 |       await expect(page.locator('h1')).toBeVisible();\n  188 |     }\n  189 |   });\n    at /app/tests/ui/entities.spec.ts:186:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] elections section - index and random pages: /elections/1996/, /elections/2016/, /elections/2004/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:19.577Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-8bb93-on---index-and-random-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 186
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-b8ea6926bb024b138407",
              "file": "tests/ui/entities.spec.ts",
              "line": 170,
              "column": 7
            }
          ]
        },
        {
          "title": "office profile - dynamic candidates",
          "file": "tests/ui/entities.spec.ts",
          "line": 192,
          "column": 6,
          "specs": [
            {
              "title": "office profile loads candidates filtered to office",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 131,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 15142,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:198:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 198
                        },
                        "snippet": "\u001b[0m \u001b[90m 196 |\u001b[39m   test(\u001b[32m'office profile loads candidates filtered to office'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n \u001b[90m 197 |\u001b[39m     \u001b[90m// Intercept the browseEntities GraphQL request to verify filter is applied\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 198 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 199 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 200 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 201 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 198
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  196 |   test('office profile loads candidates filtered to office', async ({ page }) => {\n  197 |     // Intercept the browseEntities GraphQL request to verify filter is applied\n> 198 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  199 |       if (!resp.url().includes('/api/graphql')) return false;\n  200 |       if (resp.request().method() !== 'POST') return false;\n  201 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:198:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:20.408Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 198
                      }
                    },
                    {
                      "workerIndex": 134,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 15733,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:198:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 198
                        },
                        "snippet": "\u001b[0m \u001b[90m 196 |\u001b[39m   test(\u001b[32m'office profile loads candidates filtered to office'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n \u001b[90m 197 |\u001b[39m     \u001b[90m// Intercept the browseEntities GraphQL request to verify filter is applied\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 198 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 199 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 200 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 201 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 198
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  196 |   test('office profile loads candidates filtered to office', async ({ page }) => {\n  197 |     // Intercept the browseEntities GraphQL request to verify filter is applied\n> 198 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  199 |       if (!resp.url().includes('/api/graphql')) return false;\n  200 |       if (resp.request().method() !== 'POST') return false;\n  201 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:198:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:36.130Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 198
                      }
                    },
                    {
                      "workerIndex": 137,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 15173,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:198:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 198
                        },
                        "snippet": "\u001b[0m \u001b[90m 196 |\u001b[39m   test(\u001b[32m'office profile loads candidates filtered to office'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n \u001b[90m 197 |\u001b[39m     \u001b[90m// Intercept the browseEntities GraphQL request to verify filter is applied\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 198 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 199 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 200 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 201 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 198
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  196 |   test('office profile loads candidates filtered to office', async ({ page }) => {\n  197 |     // Intercept the browseEntities GraphQL request to verify filter is applied\n> 198 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  199 |       if (!resp.url().includes('/api/graphql')) return false;\n  200 |       if (resp.request().method() !== 'POST') return false;\n  201 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:198:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:52.496Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----cd2a4-ndidates-filtered-to-office-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 198
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-754cb9c02b5294c0dd5c",
              "file": "tests/ui/entities.spec.ts",
              "line": 196,
              "column": 7
            },
            {
              "title": "office profile candidates sorted by total contributions descending",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 140,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 15122,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:219:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 219
                        },
                        "snippet": "\u001b[0m \u001b[90m 217 |\u001b[39m\n \u001b[90m 218 |\u001b[39m   test(\u001b[32m'office profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 219 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 220 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 221 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 222 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 219
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  217 |\n  218 |   test('office profile candidates sorted by total contributions descending', async ({ page }) => {\n> 219 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  220 |       if (!resp.url().includes('/api/graphql')) return false;\n  221 |       if (resp.request().method() !== 'POST') return false;\n  222 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:219:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:53:08.279Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 219
                      }
                    },
                    {
                      "workerIndex": 142,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 15449,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:219:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 219
                        },
                        "snippet": "\u001b[0m \u001b[90m 217 |\u001b[39m\n \u001b[90m 218 |\u001b[39m   test(\u001b[32m'office profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 219 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 220 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 221 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 222 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 219
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  217 |\n  218 |   test('office profile candidates sorted by total contributions descending', async ({ page }) => {\n> 219 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  220 |       if (!resp.url().includes('/api/graphql')) return false;\n  221 |       if (resp.request().method() !== 'POST') return false;\n  222 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:219:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:53:23.991Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 219
                      }
                    },
                    {
                      "workerIndex": 145,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15137,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:219:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 219
                        },
                        "snippet": "\u001b[0m \u001b[90m 217 |\u001b[39m\n \u001b[90m 218 |\u001b[39m   test(\u001b[32m'office profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 219 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 220 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 221 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 222 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 219
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  217 |\n  218 |   test('office profile candidates sorted by total contributions descending', async ({ page }) => {\n> 219 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  220 |       if (!resp.url().includes('/api/graphql')) return false;\n  221 |       if (resp.request().method() !== 'POST') return false;\n  222 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:219:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:53:40.060Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----9afcc-al-contributions-descending-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 219
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-6e65f0bd8866689ca94b",
              "file": "tests/ui/entities.spec.ts",
              "line": 218,
              "column": 7
            },
            {
              "title": "office profile renders candidate results in UI",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 147,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15113,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n\n    at /app/tests/ui/entities.spec.ts:250:65",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 65,
                          "line": 250
                        },
                        "snippet": "\u001b[0m \u001b[90m 248 |\u001b[39m\n \u001b[90m 249 |\u001b[39m     \u001b[90m// Wait for candidate results to render\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 250 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'.entity-search-result'\u001b[39m)\u001b[33m.\u001b[39mfirst())\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[33mDATA_LOAD_TIMEOUT\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                 \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 251 |\u001b[39m\n \u001b[90m 252 |\u001b[39m     \u001b[36mconst\u001b[39m results \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'.entity-search-result'\u001b[39m)\u001b[33m.\u001b[39mall()\u001b[33m;\u001b[39m\n \u001b[90m 253 |\u001b[39m     expect(results\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 65,
                            "line": 250
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n\n\n  248 |\n  249 |     // Wait for candidate results to render\n> 250 |     await expect(page.locator('.entity-search-result').first()).toBeVisible({ timeout: DATA_LOAD_TIMEOUT });\n      |                                                                 ^\n  251 |\n  252 |     const results = await page.locator('.entity-search-result').all();\n  253 |     expect(results.length).toBeGreaterThan(0);\n    at /app/tests/ui/entities.spec.ts:250:65"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:53:55.783Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 65,
                        "line": 250
                      }
                    },
                    {
                      "workerIndex": 149,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15409,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n\n    at /app/tests/ui/entities.spec.ts:250:65",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 65,
                          "line": 250
                        },
                        "snippet": "\u001b[0m \u001b[90m 248 |\u001b[39m\n \u001b[90m 249 |\u001b[39m     \u001b[90m// Wait for candidate results to render\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 250 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'.entity-search-result'\u001b[39m)\u001b[33m.\u001b[39mfirst())\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[33mDATA_LOAD_TIMEOUT\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                 \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 251 |\u001b[39m\n \u001b[90m 252 |\u001b[39m     \u001b[36mconst\u001b[39m results \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'.entity-search-result'\u001b[39m)\u001b[33m.\u001b[39mall()\u001b[33m;\u001b[39m\n \u001b[90m 253 |\u001b[39m     expect(results\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 65,
                            "line": 250
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n\n\n  248 |\n  249 |     // Wait for candidate results to render\n> 250 |     await expect(page.locator('.entity-search-result').first()).toBeVisible({ timeout: DATA_LOAD_TIMEOUT });\n      |                                                                 ^\n  251 |\n  252 |     const results = await page.locator('.entity-search-result').all();\n  253 |     expect(results.length).toBeGreaterThan(0);\n    at /app/tests/ui/entities.spec.ts:250:65"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:54:11.502Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 65,
                        "line": 250
                      }
                    },
                    {
                      "workerIndex": 151,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15130,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n\n    at /app/tests/ui/entities.spec.ts:250:65",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 65,
                          "line": 250
                        },
                        "snippet": "\u001b[0m \u001b[90m 248 |\u001b[39m\n \u001b[90m 249 |\u001b[39m     \u001b[90m// Wait for candidate results to render\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 250 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'.entity-search-result'\u001b[39m)\u001b[33m.\u001b[39mfirst())\u001b[33m.\u001b[39mtoBeVisible({ timeout\u001b[33m:\u001b[39m \u001b[33mDATA_LOAD_TIMEOUT\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                 \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 251 |\u001b[39m\n \u001b[90m 252 |\u001b[39m     \u001b[36mconst\u001b[39m results \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'.entity-search-result'\u001b[39m)\u001b[33m.\u001b[39mall()\u001b[33m;\u001b[39m\n \u001b[90m 253 |\u001b[39m     expect(results\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 65,
                            "line": 250
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.entity-search-result').first()\nExpected: visible\nTimeout: 15000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m  - Expect \"toBeVisible\" locator('.entity-search-result').first() with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('.entity-search-result').first()\u001b[22m\n\n\n  248 |\n  249 |     // Wait for candidate results to render\n> 250 |     await expect(page.locator('.entity-search-result').first()).toBeVisible({ timeout: DATA_LOAD_TIMEOUT });\n      |                                                                 ^\n  251 |\n  252 |     const results = await page.locator('.entity-search-result').all();\n  253 |     expect(results.length).toBeGreaterThan(0);\n    at /app/tests/ui/entities.spec.ts:250:65"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:54:27.571Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-office-profile----0556c-ers-candidate-results-in-UI-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 65,
                        "line": 250
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-138301d01ff79967b9fa",
              "file": "tests/ui/entities.spec.ts",
              "line": 246,
              "column": 7
            }
          ]
        },
        {
          "title": "state profile - dynamic candidates",
          "file": "tests/ui/entities.spec.ts",
          "line": 261,
          "column": 6,
          "specs": [
            {
              "title": "state profile loads candidates filtered to state",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 153,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15146,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:265:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 265
                        },
                        "snippet": "\u001b[0m \u001b[90m 263 |\u001b[39m\n \u001b[90m 264 |\u001b[39m   test(\u001b[32m'state profile loads candidates filtered to state'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 265 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 266 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 267 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 268 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 265
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  263 |\n  264 |   test('state profile loads candidates filtered to state', async ({ page }) => {\n> 265 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  266 |       if (!resp.url().includes('/api/graphql')) return false;\n  267 |       if (resp.request().method() !== 'POST') return false;\n  268 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:265:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:54:43.282Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 265
                      }
                    },
                    {
                      "workerIndex": 155,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15405,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:265:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 265
                        },
                        "snippet": "\u001b[0m \u001b[90m 263 |\u001b[39m\n \u001b[90m 264 |\u001b[39m   test(\u001b[32m'state profile loads candidates filtered to state'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 265 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 266 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 267 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 268 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 265
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  263 |\n  264 |   test('state profile loads candidates filtered to state', async ({ page }) => {\n> 265 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  266 |       if (!resp.url().includes('/api/graphql')) return false;\n  267 |       if (resp.request().method() !== 'POST') return false;\n  268 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:265:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:54:59.042Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 265
                      }
                    },
                    {
                      "workerIndex": 157,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15148,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:265:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 265
                        },
                        "snippet": "\u001b[0m \u001b[90m 263 |\u001b[39m\n \u001b[90m 264 |\u001b[39m   test(\u001b[32m'state profile loads candidates filtered to state'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 265 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 266 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 267 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 268 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 265
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  263 |\n  264 |   test('state profile loads candidates filtered to state', async ({ page }) => {\n> 265 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  266 |       if (!resp.url().includes('/api/graphql')) return false;\n  267 |       if (resp.request().method() !== 'POST') return false;\n  268 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:265:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:55:15.092Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-e1647-andidates-filtered-to-state-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 265
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-23323ef80148534fb960",
              "file": "tests/ui/entities.spec.ts",
              "line": 264,
              "column": 7
            },
            {
              "title": "state profile candidates sorted by total contributions descending",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 159,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15163,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:284:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 284
                        },
                        "snippet": "\u001b[0m \u001b[90m 282 |\u001b[39m\n \u001b[90m 283 |\u001b[39m   test(\u001b[32m'state profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 284 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 285 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 286 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 287 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 284
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  282 |\n  283 |   test('state profile candidates sorted by total contributions descending', async ({ page }) => {\n> 284 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  285 |       if (!resp.url().includes('/api/graphql')) return false;\n  286 |       if (resp.request().method() !== 'POST') return false;\n  287 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:284:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:55:30.841Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 284
                      }
                    },
                    {
                      "workerIndex": 161,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15199,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:284:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 284
                        },
                        "snippet": "\u001b[0m \u001b[90m 282 |\u001b[39m\n \u001b[90m 283 |\u001b[39m   test(\u001b[32m'state profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 284 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 285 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 286 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 287 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 284
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  282 |\n  283 |   test('state profile candidates sorted by total contributions descending', async ({ page }) => {\n> 284 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  285 |       if (!resp.url().includes('/api/graphql')) return false;\n  286 |       if (resp.request().method() !== 'POST') return false;\n  287 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:284:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:55:46.613Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 284
                      }
                    },
                    {
                      "workerIndex": 163,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15149,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:284:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 284
                        },
                        "snippet": "\u001b[0m \u001b[90m 282 |\u001b[39m\n \u001b[90m 283 |\u001b[39m   test(\u001b[32m'state profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 284 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 285 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 286 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 287 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 284
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  282 |\n  283 |   test('state profile candidates sorted by total contributions descending', async ({ page }) => {\n> 284 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  285 |       if (!resp.url().includes('/api/graphql')) return false;\n  286 |       if (resp.request().method() !== 'POST') return false;\n  287 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:284:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:56:02.451Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-state-profile---d-b2908-al-contributions-descending-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 284
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-631c42730cdb715cf791",
              "file": "tests/ui/entities.spec.ts",
              "line": 283,
              "column": 7
            }
          ]
        },
        {
          "title": "district profile - dynamic candidates",
          "file": "tests/ui/entities.spec.ts",
          "line": 311,
          "column": 6,
          "specs": [
            {
              "title": "district profile loads candidates filtered to district",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 165,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15144,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:315:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 315
                        },
                        "snippet": "\u001b[0m \u001b[90m 313 |\u001b[39m\n \u001b[90m 314 |\u001b[39m   test(\u001b[32m'district profile loads candidates filtered to district'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 315 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 316 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 317 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 318 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 315
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  313 |\n  314 |   test('district profile loads candidates filtered to district', async ({ page }) => {\n> 315 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  316 |       if (!resp.url().includes('/api/graphql')) return false;\n  317 |       if (resp.request().method() !== 'POST') return false;\n  318 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:315:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:56:18.245Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 315
                      }
                    },
                    {
                      "workerIndex": 167,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15415,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:315:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 315
                        },
                        "snippet": "\u001b[0m \u001b[90m 313 |\u001b[39m\n \u001b[90m 314 |\u001b[39m   test(\u001b[32m'district profile loads candidates filtered to district'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 315 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 316 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 317 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 318 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 315
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  313 |\n  314 |   test('district profile loads candidates filtered to district', async ({ page }) => {\n> 315 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  316 |       if (!resp.url().includes('/api/graphql')) return false;\n  317 |       if (resp.request().method() !== 'POST') return false;\n  318 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:315:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:56:33.975Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 315
                      }
                    },
                    {
                      "workerIndex": 168,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15149,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:315:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 315
                        },
                        "snippet": "\u001b[0m \u001b[90m 313 |\u001b[39m\n \u001b[90m 314 |\u001b[39m   test(\u001b[32m'district profile loads candidates filtered to district'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 315 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 316 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 317 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 318 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 315
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  313 |\n  314 |   test('district profile loads candidates filtered to district', async ({ page }) => {\n> 315 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  316 |       if (!resp.url().includes('/api/graphql')) return false;\n  317 |       if (resp.request().method() !== 'POST') return false;\n  318 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:315:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:56:49.975Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--c0956-idates-filtered-to-district-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 315
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-775cbc1b1c48b28b5324",
              "file": "tests/ui/entities.spec.ts",
              "line": 314,
              "column": 7
            },
            {
              "title": "district profile candidates sorted by total contributions descending",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 169,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15148,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:337:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 337
                        },
                        "snippet": "\u001b[0m \u001b[90m 335 |\u001b[39m\n \u001b[90m 336 |\u001b[39m   test(\u001b[32m'district profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 337 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 338 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 339 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 340 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 337
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  335 |\n  336 |   test('district profile candidates sorted by total contributions descending', async ({ page }) => {\n> 337 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  338 |       if (!resp.url().includes('/api/graphql')) return false;\n  339 |       if (resp.request().method() !== 'POST') return false;\n  340 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:337:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:05.749Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 337
                      }
                    },
                    {
                      "workerIndex": 170,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15415,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:337:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 337
                        },
                        "snippet": "\u001b[0m \u001b[90m 335 |\u001b[39m\n \u001b[90m 336 |\u001b[39m   test(\u001b[32m'district profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 337 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 338 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 339 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 340 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 337
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  335 |\n  336 |   test('district profile candidates sorted by total contributions descending', async ({ page }) => {\n> 337 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  338 |       if (!resp.url().includes('/api/graphql')) return false;\n  339 |       if (resp.request().method() !== 'POST') return false;\n  340 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:337:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:57:21.531Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 337
                      }
                    },
                    {
                      "workerIndex": 171,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15150,
                      "error": {
                        "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"",
                        "stack": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n    at /app/tests/ui/entities.spec.ts:337:34",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 34,
                          "line": 337
                        },
                        "snippet": "\u001b[0m \u001b[90m 335 |\u001b[39m\n \u001b[90m 336 |\u001b[39m   test(\u001b[32m'district profile candidates sorted by total contributions descending'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 337 |\u001b[39m     \u001b[36mconst\u001b[39m responsePromise \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mwaitForResponse(resp \u001b[33m=>\u001b[39m {\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 338 |\u001b[39m       \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mresp\u001b[33m.\u001b[39murl()\u001b[33m.\u001b[39mincludes(\u001b[32m'/api/graphql'\u001b[39m)) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 339 |\u001b[39m       \u001b[36mif\u001b[39m (resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mmethod() \u001b[33m!==\u001b[39m \u001b[32m'POST'\u001b[39m) \u001b[36mreturn\u001b[39m \u001b[36mfalse\u001b[39m\u001b[33m;\u001b[39m\n \u001b[90m 340 |\u001b[39m       \u001b[36mconst\u001b[39m body \u001b[33m=\u001b[39m resp\u001b[33m.\u001b[39mrequest()\u001b[33m.\u001b[39mpostData() \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 34,
                            "line": 337
                          },
                          "message": "TimeoutError: page.waitForResponse: Timeout 15000ms exceeded while waiting for event \"response\"\n\n  335 |\n  336 |   test('district profile candidates sorted by total contributions descending', async ({ page }) => {\n> 337 |     const responsePromise = page.waitForResponse(resp => {\n      |                                  ^\n  338 |       if (!resp.url().includes('/api/graphql')) return false;\n  339 |       if (resp.request().method() !== 'POST') return false;\n  340 |       const body = resp.request().postData() || '';\n    at /app/tests/ui/entities.spec.ts:337:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:57:37.569Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-district-profile--1321e-al-contributions-descending-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 34,
                        "line": 337
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-f00bfce3824e336086aa",
              "file": "tests/ui/entities.spec.ts",
              "line": 336,
              "column": 7
            }
          ]
        },
        {
          "title": "entity browse sort order - quantitative fields",
          "file": "tests/ui/entities.spec.ts",
          "line": 379,
          "column": 6,
          "specs": [
            {
              "title": "candidates sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 184,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:53.339Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-entity-browse-sor-5c84b-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-e799dea180dde7b078da",
              "file": "tests/ui/entities.spec.ts",
              "line": 381,
              "column": 7
            },
            {
              "title": "committees sorted by total receipts descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 199,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:53.621Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-entity-browse-sor-e4166-y-total-receipts-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-717048594564fd91aeee",
              "file": "tests/ui/entities.spec.ts",
              "line": 389,
              "column": 7
            },
            {
              "title": "vendors sorted by total received descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 715,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:53.837Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-entity-browse-sor-fb9d9-y-total-received-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-3102f0e0d367177cc559",
              "file": "tests/ui/entities.spec.ts",
              "line": 397,
              "column": 7
            },
            {
              "title": "individuals sorted by total contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 282,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:54.571Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-entity-browse-sor-9b1cc-al-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-4172cf90fdc39f1e8b04",
              "file": "tests/ui/entities.spec.ts",
              "line": 405,
              "column": 7
            },
            {
              "title": "employers sorted by total employee contributions descending",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 964,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:54.870Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-entity-browse-sor-2868b-ee-contributions-descending-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-2ca76e131a1ccafc504c",
              "file": "tests/ui/entities.spec.ts",
              "line": 416,
              "column": 7
            }
          ]
        },
        {
          "title": "us.elect.info entity sections - additional index + detail",
          "file": "tests/ui/entities.spec.ts",
          "line": 425,
          "column": 6,
          "specs": [
            {
              "title": "employers section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 1625,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] employers section - index and random pages: /employers/9ba78b2b-197c-2ec7-bb27-baeb24ddf906/, /employers/233356c6-077e-a4cc-cf1d-5b12bcc88379/, /employers/a3c70989-0fb6-1336-b986-f8e43a738ad5/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:55.850Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-095ba-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-b6b14a576f48b71af5e5",
              "file": "tests/ui/entities.spec.ts",
              "line": 427,
              "column": 7
            },
            {
              "title": "vendors section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 356,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] vendors section - index and random pages: /vendors/829a17f1-9f36-cb6b-1bdf-4747243e2418/, /vendors/0966d116-aea0-c9b1-d66a-621dacb4b87e/, /vendors/1aa9d0ff-f8e3-8e48-4ba1-6c40961cff3f/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:57.492Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-29463-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-586eade1e031f2078f6b",
              "file": "tests/ui/entities.spec.ts",
              "line": 447,
              "column": 7
            },
            {
              "title": "counties section - index and random detail pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 172,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 766,
                      "error": {
                        "message": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:490:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 490
                        },
                        "snippet": "\u001b[0m \u001b[90m 488 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 489 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 490 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 491 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 492 |\u001b[39m     }\n \u001b[90m 493 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 490
                          },
                          "message": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  488 |     for (const href of randomLinks) {\n  489 |       const entityResponse = await page.goto(toRelativePath(href));\n> 490 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  491 |       await expect(page.locator('h1')).toBeVisible();\n  492 |     }\n  493 |   });\n    at /app/tests/ui/entities.spec.ts:490:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] counties section - index and random detail pages: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/, /counties/fb1aa691-68bd-09a0-4c2d-2a3eb6aebf8c/, /counties/be6a4f4e-b42f-9a62-a8cd-9cead78ac8f7/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:57:57.865Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 490
                      }
                    },
                    {
                      "workerIndex": 173,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 914,
                      "error": {
                        "message": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:490:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 490
                        },
                        "snippet": "\u001b[0m \u001b[90m 488 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 489 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 490 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 491 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 492 |\u001b[39m     }\n \u001b[90m 493 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 490
                          },
                          "message": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  488 |     for (const href of randomLinks) {\n  489 |       const entityResponse = await page.goto(toRelativePath(href));\n> 490 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  491 |       await expect(page.locator('h1')).toBeVisible();\n  492 |     }\n  493 |   });\n    at /app/tests/ui/entities.spec.ts:490:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] counties section - index and random detail pages: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/, /counties/fb1aa691-68bd-09a0-4c2d-2a3eb6aebf8c/, /counties/be6a4f4e-b42f-9a62-a8cd-9cead78ac8f7/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:57:59.192Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 490
                      }
                    },
                    {
                      "workerIndex": 174,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 625,
                      "error": {
                        "message": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:490:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 490
                        },
                        "snippet": "\u001b[0m \u001b[90m 488 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 489 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 490 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 491 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 492 |\u001b[39m     }\n \u001b[90m 493 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 490
                          },
                          "message": "Error: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  488 |     for (const href of randomLinks) {\n  489 |       const entityResponse = await page.goto(toRelativePath(href));\n> 490 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  491 |       await expect(page.locator('h1')).toBeVisible();\n  492 |     }\n  493 |   });\n    at /app/tests/ui/entities.spec.ts:490:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] counties section - index and random detail pages: /counties/02195700-122c-4e5d-c19e-836d061ba1ed/, /counties/fb1aa691-68bd-09a0-4c2d-2a3eb6aebf8c/, /counties/be6a4f4e-b42f-9a62-a8cd-9cead78ac8f7/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:58:00.845Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-a02d5-dex-and-random-detail-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 490
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-6889bbe45fe800e5d9be",
              "file": "tests/ui/entities.spec.ts",
              "line": 467,
              "column": 7
            },
            {
              "title": "places section - index and random detail pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 175,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 734,
                      "error": {
                        "message": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:518:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 518
                        },
                        "snippet": "\u001b[0m \u001b[90m 516 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 517 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 518 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 519 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 520 |\u001b[39m     }\n \u001b[90m 521 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 518
                          },
                          "message": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  516 |     for (const href of randomLinks) {\n  517 |       const entityResponse = await page.goto(toRelativePath(href));\n> 518 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  519 |       await expect(page.locator('h1')).toBeVisible();\n  520 |     }\n  521 |   });\n    at /app/tests/ui/entities.spec.ts:518:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] places section - index and random detail pages: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/, /places/eee02042-1836-823e-9cf9-f01e1754f058/, /places/7fd1f96a-f0b1-895b-9fac-76445d1f8ce1/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:58:02.093Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 518
                      }
                    },
                    {
                      "workerIndex": 176,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 1059,
                      "error": {
                        "message": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:518:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 518
                        },
                        "snippet": "\u001b[0m \u001b[90m 516 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 517 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 518 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 519 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 520 |\u001b[39m     }\n \u001b[90m 521 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 518
                          },
                          "message": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  516 |     for (const href of randomLinks) {\n  517 |       const entityResponse = await page.goto(toRelativePath(href));\n> 518 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  519 |       await expect(page.locator('h1')).toBeVisible();\n  520 |     }\n  521 |   });\n    at /app/tests/ui/entities.spec.ts:518:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] places section - index and random detail pages: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/, /places/eee02042-1836-823e-9cf9-f01e1754f058/, /places/7fd1f96a-f0b1-895b-9fac-76445d1f8ce1/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:58:03.419Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 518
                      }
                    },
                    {
                      "workerIndex": 177,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 881,
                      "error": {
                        "message": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:518:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 518
                        },
                        "snippet": "\u001b[0m \u001b[90m 516 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 517 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 518 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 519 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 520 |\u001b[39m     }\n \u001b[90m 521 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 518
                          },
                          "message": "Error: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  516 |     for (const href of randomLinks) {\n  517 |       const entityResponse = await page.goto(toRelativePath(href));\n> 518 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  519 |       await expect(page.locator('h1')).toBeVisible();\n  520 |     }\n  521 |   });\n    at /app/tests/ui/entities.spec.ts:518:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] places section - index and random detail pages: /places/12baf500-599b-3ac0-18b8-ed836b6b7001/, /places/eee02042-1836-823e-9cf9-f01e1754f058/, /places/7fd1f96a-f0b1-895b-9fac-76445d1f8ce1/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:58:05.204Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-45389-dex-and-random-detail-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 518
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-c9580fbe75551276dc4a",
              "file": "tests/ui/entities.spec.ts",
              "line": 495,
              "column": 7
            },
            {
              "title": "postalcodes section - index and random detail pages",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 178,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 719,
                      "error": {
                        "message": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:546:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 546
                        },
                        "snippet": "\u001b[0m \u001b[90m 544 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 545 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 546 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 547 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 548 |\u001b[39m     }\n \u001b[90m 549 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 546
                          },
                          "message": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  544 |     for (const href of randomLinks) {\n  545 |       const entityResponse = await page.goto(toRelativePath(href));\n> 546 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  547 |       await expect(page.locator('h1')).toBeVisible();\n  548 |     }\n  549 |   });\n    at /app/tests/ui/entities.spec.ts:546:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] postalcodes section - index and random detail pages: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/, /postalcodes/3a1b45a1-a2e6-3704-43e2-4371c0de64b2/, /postalcodes/0374e329-b508-2fb5-89fe-da47b8f948ec/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:58:06.678Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 546
                      }
                    },
                    {
                      "workerIndex": 179,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 962,
                      "error": {
                        "message": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:546:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 546
                        },
                        "snippet": "\u001b[0m \u001b[90m 544 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 545 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 546 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 547 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 548 |\u001b[39m     }\n \u001b[90m 549 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 546
                          },
                          "message": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  544 |     for (const href of randomLinks) {\n  545 |       const entityResponse = await page.goto(toRelativePath(href));\n> 546 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  547 |       await expect(page.locator('h1')).toBeVisible();\n  548 |     }\n  549 |   });\n    at /app/tests/ui/entities.spec.ts:546:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] postalcodes section - index and random detail pages: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/, /postalcodes/3a1b45a1-a2e6-3704-43e2-4371c0de64b2/, /postalcodes/0374e329-b508-2fb5-89fe-da47b8f948ec/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:58:07.977Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 546
                      }
                    },
                    {
                      "workerIndex": 180,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 743,
                      "error": {
                        "message": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entities.spec.ts:546:85",
                        "location": {
                          "file": "/app/tests/ui/entities.spec.ts",
                          "column": 85,
                          "line": 546
                        },
                        "snippet": "\u001b[0m \u001b[90m 544 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m href \u001b[36mof\u001b[39m randomLinks) {\n \u001b[90m 545 |\u001b[39m       \u001b[36mconst\u001b[39m entityResponse \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(toRelativePath(href))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 546 |\u001b[39m       expect(entityResponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${toRelativePath(href)} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                                     \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 547 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m 548 |\u001b[39m     }\n \u001b[90m 549 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "column": 85,
                            "line": 546
                          },
                          "message": "Error: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  544 |     for (const href of randomLinks) {\n  545 |       const entityResponse = await page.goto(toRelativePath(href));\n> 546 |       expect(entityResponse?.status(), `${toRelativePath(href)} should answer 200`).toBe(200);\n      |                                                                                     ^\n  547 |       await expect(page.locator('h1')).toBeVisible();\n  548 |     }\n  549 |   });\n    at /app/tests/ui/entities.spec.ts:546:85"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] postalcodes section - index and random detail pages: /postalcodes/0e5e61ba-fc1a-be11-3ca0-f5a1511f6768/, /postalcodes/3a1b45a1-a2e6-3704-43e2-4371c0de64b2/, /postalcodes/0374e329-b508-2fb5-89fe-da47b8f948ec/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:58:09.667Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7c577-dex-and-random-detail-pages-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "column": 85,
                        "line": 546
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "e590b0e25242679a26f1-7378845a8b20f0ca8dc7",
              "file": "tests/ui/entities.spec.ts",
              "line": 523,
              "column": 7
            },
            {
              "title": "precincts section - map view and state filter",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 181,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 856,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] precincts section - map view and state filter: /precincts/38a6229c-032f-cf98-7eb5-868f5e079c54/, /precincts/dac9ac7c-d757-0664-8c90-67596cc73be2/, /precincts/3ae79024-e06c-dfc7-2737-3ce6046026c3/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:58:10.996Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-94b96---map-view-and-state-filter-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-b994931c7f61cea69263",
              "file": "tests/ui/entities.spec.ts",
              "line": 551,
              "column": 7
            },
            {
              "title": "tracts section - state/county filter and random detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 181,
                      "parallelIndex": 0,
                      "status": "passed",
                      "duration": 780,
                      "errors": [],
                      "stdout": [
                        {
                          "text": "[sample seed=e23098f] tracts section - state/county filter and random detail pages: /tracts/476d4bda-9208-e3fa-77d0-528f34bbbd46/, /tracts/7a9e4033-c057-1971-71f3-a032412b349e/, /tracts/54486c6d-382e-4312-03ff-de5fe967d764/\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:58:11.943Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-bf75c-ter-and-random-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "e590b0e25242679a26f1-073b2eb60264357a1ca9",
              "file": "tests/ui/entities.spec.ts",
              "line": 604,
              "column": 7
            }
          ]
        },
        {
          "title": "us.elect.info entity sections - individuals (premium)",
          "file": "tests/ui/entities.spec.ts",
          "line": 657,
          "column": 6,
          "specs": [
            {
              "title": "individuals section - index and random pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Requires PLAYWRIGHT_AUTH_USER/PLAYWRIGHT_AUTH_PASS",
                      "location": {
                        "file": "/app/tests/ui/entities.spec.ts",
                        "line": 666,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 181,
                      "parallelIndex": 0,
                      "status": "skipped",
                      "duration": 101,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:58:12.741Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Requires PLAYWRIGHT_AUTH_USER/PLAYWRIGHT_AUTH_PASS",
                          "location": {
                            "file": "/app/tests/ui/entities.spec.ts",
                            "line": 666,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entities-us-elect-info-ent-7f2e9-on---index-and-random-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "e590b0e25242679a26f1-fa85143bab060214a738",
              "file": "tests/ui/entities.spec.ts",
              "line": 665,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entity-filters.spec.ts",
      "file": "tests/ui/entity-filters.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "individual donor filters",
          "file": "tests/ui/entity-filters.spec.ts",
          "line": 20,
          "column": 6,
          "specs": [
            {
              "title": "state, cycle, lifetime total and lean narrow the list and land in the URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 4758,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.860Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-filters-individual--168cd-he-list-and-land-in-the-URL-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "589b4d2d59414df6d16a-86f7e52d8ac4c2add6d3",
              "file": "tests/ui/entity-filters.spec.ts",
              "line": 29,
              "column": 7
            },
            {
              "title": "text filters: employer and ZIP prefix",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 1481,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.464Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-filters-individual--88dba-ers-employer-and-ZIP-prefix-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "589b4d2d59414df6d16a-d602b2d29045026bf1c1",
              "file": "tests/ui/entity-filters.spec.ts",
              "line": 50,
              "column": 7
            },
            {
              "title": "an unknown filter field is refused by the API",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 27,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.962Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "589b4d2d59414df6d16a-2f26c7bcfc0fe5f858da",
              "file": "tests/ui/entity-filters.spec.ts",
              "line": 58,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/entity-graph.spec.ts",
      "file": "tests/ui/entity-graph.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "entity-graph script injection",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 21,
          "column": 6,
          "specs": [
            {
              "title": "injected once on /committees/a75a9110-f1db-a945-39a8-7503ed3c04da/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 7,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 29,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:25:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 25
                        },
                        "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 24 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m       expect((\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 25
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  23 |     test(`injected once on ${path}`, async ({ request }) => {\n  24 |       const res = await request.get(path);\n> 25 |       expect(res.status()).toBe(200);\n     |                            ^\n  26 |       expect((await res.text()).split(SCRIPT).length - 1).toBe(1);\n  27 |     });\n  28 |   }\n    at /app/tests/ui/entity-graph.spec.ts:25:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.887Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--06f2b-1db-a945-39a8-7503ed3c04da--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 25
                      }
                    },
                    {
                      "workerIndex": 19,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 100,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:25:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 25
                        },
                        "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 24 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m       expect((\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 25
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  23 |     test(`injected once on ${path}`, async ({ request }) => {\n  24 |       const res = await request.get(path);\n> 25 |       expect(res.status()).toBe(200);\n     |                            ^\n  26 |       expect((await res.text()).split(SCRIPT).length - 1).toBe(1);\n  27 |     });\n  28 |   }\n    at /app/tests/ui/entity-graph.spec.ts:25:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:52.462Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--06f2b-1db-a945-39a8-7503ed3c04da--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--06f2b-1db-a945-39a8-7503ed3c04da--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 25
                      }
                    },
                    {
                      "workerIndex": 17,
                      "parallelIndex": 18,
                      "status": "failed",
                      "duration": 8,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:25:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 25
                        },
                        "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 24 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m       expect((\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 25
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  23 |     test(`injected once on ${path}`, async ({ request }) => {\n  24 |       const res = await request.get(path);\n> 25 |       expect(res.status()).toBe(200);\n     |                            ^\n  26 |       expect((await res.text()).split(SCRIPT).length - 1).toBe(1);\n  27 |     });\n  28 |   }\n    at /app/tests/ui/entity-graph.spec.ts:25:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:52.636Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--06f2b-1db-a945-39a8-7503ed3c04da--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 25
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-29e66cb8f40124191f24",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 23,
              "column": 9
            },
            {
              "title": "injected once on /candidates/a8897257-430c-2bf3-4498-349021b09ca3/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 22,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 39,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:25:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 25
                        },
                        "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 24 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m       expect((\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 25
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  23 |     test(`injected once on ${path}`, async ({ request }) => {\n  24 |       const res = await request.get(path);\n> 25 |       expect(res.status()).toBe(200);\n     |                            ^\n  26 |       expect((await res.text()).split(SCRIPT).length - 1).toBe(1);\n  27 |     });\n  28 |   }\n    at /app/tests/ui/entity-graph.spec.ts:25:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.158Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--e4372-30c-2bf3-4498-349021b09ca3--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 25
                      }
                    },
                    {
                      "workerIndex": 24,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 54,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:25:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 25
                        },
                        "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 24 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m       expect((\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 25
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  23 |     test(`injected once on ${path}`, async ({ request }) => {\n  24 |       const res = await request.get(path);\n> 25 |       expect(res.status()).toBe(200);\n     |                            ^\n  26 |       expect((await res.text()).split(SCRIPT).length - 1).toBe(1);\n  27 |     });\n  28 |   }\n    at /app/tests/ui/entity-graph.spec.ts:25:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:53.701Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--e4372-30c-2bf3-4498-349021b09ca3--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--e4372-30c-2bf3-4498-349021b09ca3--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 25
                      }
                    },
                    {
                      "workerIndex": 26,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 37,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:25:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 25
                        },
                        "snippet": "\u001b[0m \u001b[90m 23 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 24 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 26 |\u001b[39m       expect((\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 27 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 28 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 25
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  23 |     test(`injected once on ${path}`, async ({ request }) => {\n  24 |       const res = await request.get(path);\n> 25 |       expect(res.status()).toBe(200);\n     |                            ^\n  26 |       expect((await res.text()).split(SCRIPT).length - 1).toBe(1);\n  27 |     });\n  28 |   }\n    at /app/tests/ui/entity-graph.spec.ts:25:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:54.387Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--e4372-30c-2bf3-4498-349021b09ca3--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 25
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-8caee27d666b889f629d",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 23,
              "column": 9
            },
            {
              "title": "not injected on /states/032f8d61-f554-f435-2a6d-50b3c8cc01d7/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 29,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 33,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.939Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--4ddd4-554-f435-2a6d-50b3c8cc01d7--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    },
                    {
                      "workerIndex": 30,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 75,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:55.460Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--4ddd4-554-f435-2a6d-50b3c8cc01d7--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--4ddd4-554-f435-2a6d-50b3c8cc01d7--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    },
                    {
                      "workerIndex": 34,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 26,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:56.107Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--4ddd4-554-f435-2a6d-50b3c8cc01d7--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-b079643ce2eb264e4473",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 31,
              "column": 9
            },
            {
              "title": "not injected on /elections/2024/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 36,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 33,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.652Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--df191-injected-on-elections-2024--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    },
                    {
                      "workerIndex": 42,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 129,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:57.234Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--df191-injected-on-elections-2024--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--df191-injected-on-elections-2024--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    },
                    {
                      "workerIndex": 46,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 26,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:57.926Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--df191-injected-on-elections-2024--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-a1eb6278fed6d4b5614b",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 31,
              "column": 9
            },
            {
              "title": "not injected on /offices/president/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 52,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 31,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.471Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c622e-ected-on-offices-president--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    },
                    {
                      "workerIndex": 55,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 53,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:58.998Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c622e-ected-on-offices-president--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c622e-ected-on-offices-president--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    },
                    {
                      "workerIndex": 6,
                      "parallelIndex": 6,
                      "status": "failed",
                      "duration": 13,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/entity-graph.spec.ts:33:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 33
                        },
                        "snippet": "\u001b[0m \u001b[90m 31 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 32 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 33 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 34 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'entity-graph.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 35 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 36 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 33
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  31 |     test(`not injected on ${path}`, async ({ request }) => {\n  32 |       const res = await request.get(path);\n> 33 |       expect(res.status()).toBe(200);\n     |                            ^\n  34 |       expect(await res.text()).not.toContain('entity-graph.js');\n  35 |     });\n  36 |   }\n    at /app/tests/ui/entity-graph.spec.ts:33:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:59.116Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c622e-ected-on-offices-president--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 33
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-b3bac75bfbf090c5eca2",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 31,
              "column": 9
            }
          ]
        },
        {
          "title": "entityGraph API",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 39,
          "column": 6,
          "specs": [
            {
              "title": "C00010603: neighbours without individuals, money edges with amounts",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 60,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 3178,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.659Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-b3fdec8c25bff91f5112",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 41,
              "column": 9
            },
            {
              "title": "P00009423: neighbours without individuals, money edges with amounts",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 60,
                      "parallelIndex": 6,
                      "status": "passed",
                      "duration": 1487,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:02.878Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "23d9f129c21032742001-dd19f11790f289a6f255",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 41,
              "column": 9
            }
          ]
        },
        {
          "title": "entity-graph pop-over",
          "file": "tests/ui/entity-graph.spec.ts",
          "line": 62,
          "column": 6,
          "specs": [
            {
              "title": "opens and draws on /committees/a75a9110-f1db-a945-39a8-7503ed3c04da/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 60,
                      "parallelIndex": 6,
                      "status": "failed",
                      "duration": 15118,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/entity-graph.spec.ts:69:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 69
                        },
                        "snippet": "\u001b[0m \u001b[90m 67 |\u001b[39m       \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n \u001b[90m 68 |\u001b[39m       \u001b[36mconst\u001b[39m button \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 69 |\u001b[39m       \u001b[36mawait\u001b[39m expect(button)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 70 |\u001b[39m       \u001b[36mawait\u001b[39m button\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 71 |\u001b[39m       \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog.eg-dialog'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 72 |\u001b[39m       \u001b[36mawait\u001b[39m expect(dialog)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 69
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  67 |       await page.goto(path);\n  68 |       const button = page.locator('button.eg-open');\n> 69 |       await expect(button).toHaveCount(1, { timeout: 15000 });\n     |                            ^\n  70 |       await button.click();\n  71 |       const dialog = page.locator('dialog.eg-dialog');\n  72 |       await expect(dialog).toBeVisible();\n    at /app/tests/ui/entity-graph.spec.ts:69:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:04.376Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 69
                      }
                    },
                    {
                      "workerIndex": 130,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 15416,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/entity-graph.spec.ts:69:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 69
                        },
                        "snippet": "\u001b[0m \u001b[90m 67 |\u001b[39m       \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n \u001b[90m 68 |\u001b[39m       \u001b[36mconst\u001b[39m button \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 69 |\u001b[39m       \u001b[36mawait\u001b[39m expect(button)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 70 |\u001b[39m       \u001b[36mawait\u001b[39m button\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 71 |\u001b[39m       \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog.eg-dialog'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 72 |\u001b[39m       \u001b[36mawait\u001b[39m expect(dialog)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 69
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  67 |       await page.goto(path);\n  68 |       const button = page.locator('button.eg-open');\n> 69 |       await expect(button).toHaveCount(1, { timeout: 15000 });\n     |                            ^\n  70 |       await button.click();\n  71 |       const dialog = page.locator('dialog.eg-dialog');\n  72 |       await expect(dialog).toBeVisible();\n    at /app/tests/ui/entity-graph.spec.ts:69:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:20.031Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 69
                      }
                    },
                    {
                      "workerIndex": 133,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15123,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/entity-graph.spec.ts:69:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 69
                        },
                        "snippet": "\u001b[0m \u001b[90m 67 |\u001b[39m       \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n \u001b[90m 68 |\u001b[39m       \u001b[36mconst\u001b[39m button \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 69 |\u001b[39m       \u001b[36mawait\u001b[39m expect(button)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 70 |\u001b[39m       \u001b[36mawait\u001b[39m button\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 71 |\u001b[39m       \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog.eg-dialog'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 72 |\u001b[39m       \u001b[36mawait\u001b[39m expect(dialog)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 69
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  67 |       await page.goto(path);\n  68 |       const button = page.locator('button.eg-open');\n> 69 |       await expect(button).toHaveCount(1, { timeout: 15000 });\n     |                            ^\n  70 |       await button.click();\n  71 |       const dialog = page.locator('dialog.eg-dialog');\n  72 |       await expect(dialog).toBeVisible();\n    at /app/tests/ui/entity-graph.spec.ts:69:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:36.033Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--d0dba-1db-a945-39a8-7503ed3c04da--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 69
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-759bfd2643a325762edb",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 64,
              "column": 9
            },
            {
              "title": "opens and draws on /candidates/a8897257-430c-2bf3-4498-349021b09ca3/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 136,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15134,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/entity-graph.spec.ts:69:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 69
                        },
                        "snippet": "\u001b[0m \u001b[90m 67 |\u001b[39m       \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n \u001b[90m 68 |\u001b[39m       \u001b[36mconst\u001b[39m button \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 69 |\u001b[39m       \u001b[36mawait\u001b[39m expect(button)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 70 |\u001b[39m       \u001b[36mawait\u001b[39m button\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 71 |\u001b[39m       \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog.eg-dialog'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 72 |\u001b[39m       \u001b[36mawait\u001b[39m expect(dialog)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 69
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  67 |       await page.goto(path);\n  68 |       const button = page.locator('button.eg-open');\n> 69 |       await expect(button).toHaveCount(1, { timeout: 15000 });\n     |                            ^\n  70 |       await button.click();\n  71 |       const dialog = page.locator('dialog.eg-dialog');\n  72 |       await expect(dialog).toBeVisible();\n    at /app/tests/ui/entity-graph.spec.ts:69:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:52.263Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 69
                      }
                    },
                    {
                      "workerIndex": 139,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15461,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/entity-graph.spec.ts:69:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 69
                        },
                        "snippet": "\u001b[0m \u001b[90m 67 |\u001b[39m       \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n \u001b[90m 68 |\u001b[39m       \u001b[36mconst\u001b[39m button \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 69 |\u001b[39m       \u001b[36mawait\u001b[39m expect(button)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 70 |\u001b[39m       \u001b[36mawait\u001b[39m button\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 71 |\u001b[39m       \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog.eg-dialog'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 72 |\u001b[39m       \u001b[36mawait\u001b[39m expect(dialog)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 69
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  67 |       await page.goto(path);\n  68 |       const button = page.locator('button.eg-open');\n> 69 |       await expect(button).toHaveCount(1, { timeout: 15000 });\n     |                            ^\n  70 |       await button.click();\n  71 |       const dialog = page.locator('dialog.eg-dialog');\n  72 |       await expect(dialog).toBeVisible();\n    at /app/tests/ui/entity-graph.spec.ts:69:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:53:07.957Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 69
                      }
                    },
                    {
                      "workerIndex": 143,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 15199,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/entity-graph.spec.ts:69:28",
                        "location": {
                          "file": "/app/tests/ui/entity-graph.spec.ts",
                          "column": 28,
                          "line": 69
                        },
                        "snippet": "\u001b[0m \u001b[90m 67 |\u001b[39m       \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n \u001b[90m 68 |\u001b[39m       \u001b[36mconst\u001b[39m button \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 69 |\u001b[39m       \u001b[36mawait\u001b[39m expect(button)\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 70 |\u001b[39m       \u001b[36mawait\u001b[39m button\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 71 |\u001b[39m       \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'dialog.eg-dialog'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 72 |\u001b[39m       \u001b[36mawait\u001b[39m expect(dialog)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/entity-graph.spec.ts",
                            "column": 28,
                            "line": 69
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('button.eg-open')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('button.eg-open') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('button.eg-open')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  67 |       await page.goto(path);\n  68 |       const button = page.locator('button.eg-open');\n> 69 |       await expect(button).toHaveCount(1, { timeout: 15000 });\n     |                            ^\n  70 |       await button.click();\n  71 |       const dialog = page.locator('dialog.eg-dialog');\n  72 |       await expect(dialog).toBeVisible();\n    at /app/tests/ui/entity-graph.spec.ts:69:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:53:24.036Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/entity-graph-entity-graph--c0375-30c-2bf3-4498-349021b09ca3--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/entity-graph.spec.ts",
                        "column": 28,
                        "line": 69
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "23d9f129c21032742001-d147fc999d701bc54cf5",
              "file": "tests/ui/entity-graph.spec.ts",
              "line": 64,
              "column": 9
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/layout.spec.ts",
      "file": "tests/ui/layout.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "landing page layout",
          "file": "tests/ui/layout.spec.ts",
          "line": 34,
          "column": 6,
          "specs": [
            {
              "title": "/offices/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 187,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.916Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-f9a0f--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-b103aceb46d9e33c607c",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/candidates/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 115,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.917Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-e1535--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-501813caa83ee6ffddae",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/committees/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 175,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.055Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-f8e77--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-de18f184843b0fae568d",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/districts/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 502,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.244Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-35cf0--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-1f26499e48b19f3c5079",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/elections/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 148,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.762Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-95621--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-199799185e5210591ab4",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/employers/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 307,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.925Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-7159b--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-2140f49bb861fe7bbe46",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/individuals/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 148,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.242Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-b60e0--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-a633dc3b7a23c4f18ee7",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/parties/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 118,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.400Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-93081--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-4e481b7b1ad5efb291d8",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/vendors/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 206,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.528Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-3b19b--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-88452699ffd4b556e70b",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/counties/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 335,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.745Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-00485--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-6758f7f476db88956d39",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/places/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 430,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:55.090Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-places-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-f549dc77f989ce03913a",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/precincts/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 341,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:55.531Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-03eaf--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-2b94cf26eef28c61b95a",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/tracts/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 404,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:55.885Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-tracts-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-6f56d03ec531675b43bb",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/postalcodes/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 366,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.309Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-2fbed--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-cec77f76cc935aa28244",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/blocks/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 355,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.688Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-blocks-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-c7888d679ec3d65988bb",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/states/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 376,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.056Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-states-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-cb2a9d49b945fcadff5b",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/datasources/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 106,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.441Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-d7e7f--loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-e15a22bb0b0e0b8702da",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "/ loads with correct heading",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 176,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.558Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-landing-page-layout-loads-with-correct-heading-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-b3bb4507b2ed87666026",
              "file": "tests/ui/layout.spec.ts",
              "line": 36,
              "column": 9
            }
          ]
        },
        {
          "title": "entity index layout - search UI above results",
          "file": "tests/ui/layout.spec.ts",
          "line": 43,
          "column": 6,
          "specs": [
            {
              "title": "/offices/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 133,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.750Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-d0829--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-2f959d27c43f09851847",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/candidates/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 137,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.898Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-5cf92--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-00076dbe4f0c22864078",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/committees/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 151,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.046Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-f16d0--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-0fe38d5384d0548662ad",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/districts/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 367,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.207Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-59044--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-5648e4a82b3c14f4b29a",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/elections/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 128,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.585Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-069e9--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-baff7226ae19ee1c41c4",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/employers/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 143,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.730Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-0759c--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-f8acbc052c6aa8109879",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/individuals/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 146,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.889Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-37753--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-012ad5df38578222c51a",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/parties/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 134,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.052Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-06b7d--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-c3c8681cb3628cf835f3",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/vendors/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 117,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.198Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-0b4b4--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-fdfc262d12f616388ed5",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/counties/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 362,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.324Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-cc2cb--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-fd21bba6e2c81307bfbb",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/places/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 436,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.694Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-03981--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-dc93ee5eb496af9f132d",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/precincts/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 374,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:00.141Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-b2a82--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-b398a97535a50c3906a3",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/tracts/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 389,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:00.524Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-819d4--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-f1e37aa61dc45b736499",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/postalcodes/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 355,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:00.924Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-7b0e8--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-c665f4d02c3670bb60f1",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "/blocks/ has no static search description in main",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 429,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:01.292Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-3f3cc--search-description-in-main-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-a296b365c921f935f0ac",
              "file": "tests/ui/layout.spec.ts",
              "line": 45,
              "column": 9
            },
            {
              "title": "offices - search container appears before main in DOM",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 132,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:01.734Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-59504--appears-before-main-in-DOM-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-025db2696f459ca9ce93",
              "file": "tests/ui/layout.spec.ts",
              "line": 56,
              "column": 7
            },
            {
              "title": "candidates - search container appears before main in DOM",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "passed",
                      "duration": 119,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:01.880Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/layout-entity-index-layout-729a8--appears-before-main-in-DOM-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9f98fd8c8d1538f5ebbb-fc645687ac9b64d16a9d",
              "file": "tests/ui/layout.spec.ts",
              "line": 71,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/leaf-details.spec.ts",
      "file": "tests/ui/leaf-details.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "leaf collection client-side detail pages",
          "file": "tests/ui/leaf-details.spec.ts",
          "line": 69,
          "column": 6,
          "specs": [
            {
              "title": "individual detail renders a bounded contribution profile",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 306,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.891Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-c5a9d-ounded-contribution-profile-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-a2db653e74557c471e56",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 70,
              "column": 7
            },
            {
              "title": "employer detail renders totals and a bounded donor list below threshold",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 20080,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.035Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-26705--donor-list-below-threshold-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-f7566958d39b4e43ad90",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 83,
              "column": 7
            },
            {
              "title": "vendor detail renders totals and committee clients, ranked or edge-sorted",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 434,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:13.134Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-1a58b-ients-ranked-or-edge-sorted-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-4a09f332855f839e222b",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 92,
              "column": 7
            },
            {
              "title": "block detail renders voter data and bounded geography links",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 280,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:13.588Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-50a84-and-bounded-geography-links-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-8e2fbaa51cd3bb771d1c",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 112,
              "column": 7
            },
            {
              "title": "block map links (/blocks/<geoid>/) resolve to the block by its derived id",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 284,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:13.879Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-3e05c-the-block-by-its-derived-id-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-e2fa35759bb0fb651ac4",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 120,
              "column": 7
            },
            {
              "title": "precinct detail bootstraps directly and renders results",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 251,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:14.178Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-ad0bd-irectly-and-renders-results-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-498f148b1bb8c8ca5043",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 127,
              "column": 7
            },
            {
              "title": "tract detail remains client-rendered under the generalized leaf route",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 321,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:14.444Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-6e33d--the-generalized-leaf-route-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-943e9e10b1959a53f29b",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 136,
              "column": 7
            },
            {
              "title": "hub employer renders totals without issuing a live connection query",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 231,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:14.775Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-84944-ing-a-live-connection-query-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-a8b9358953cbb0b8c0a9",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 156,
              "column": 7
            },
            {
              "title": "hub vendor resolves an alias without issuing a live connection query",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 166,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:15.016Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-86be8-ing-a-live-connection-query-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-f2d8cbd96bd16419f748",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 206,
              "column": 7
            },
            {
              "title": "hub vendor lists its ranked top clients with a top-N-of-P footer and Sankey (sites#261)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 278,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:15.193Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-22f5d-ooter-and-Sankey-sites-261--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-efc8dff31707720d5493",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 266,
              "column": 7
            },
            {
              "title": "individual Top Committees: one row per committee and a distinct-committee footer (sites#194)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 163,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:15.484Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-c9ccd-committee-footer-sites-194--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-e7d9a1f93425703003bf",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 334,
              "column": 7
            },
            {
              "title": "vendor live clients come from moneyCounterparties when the graph has no ranks (sites#194)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "passed",
                      "duration": 255,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:15.664Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/leaf-details-leaf-collecti-92c9b-aph-has-no-ranks-sites-194--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "d48770b0cc7e6c0061b9-8ec7a2312ae8e8cad842",
              "file": "tests/ui/leaf-details.spec.ts",
              "line": 379,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/money-flow.spec.ts",
      "file": "tests/ui/money-flow.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "money-flow script injection",
          "file": "tests/ui/money-flow.spec.ts",
          "line": 25,
          "column": 6,
          "specs": [
            {
              "title": "injected once on /committees/a75a9110-f1db-a945-39a8-7503ed3c04da/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 10,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 30,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:29:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 29
                        },
                        "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 28 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m       expect(html\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 29
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  27 |     test(`injected once on ${path}`, async ({ request }) => {\n  28 |       const res = await request.get(path);\n> 29 |       expect(res.status()).toBe(200);\n     |                            ^\n  30 |       const html = await res.text();\n  31 |       expect(html.split(SCRIPT).length - 1).toBe(1);\n  32 |     });\n    at /app/tests/ui/money-flow.spec.ts:29:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.923Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-e98f2-1db-a945-39a8-7503ed3c04da--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 29
                      }
                    },
                    {
                      "workerIndex": 20,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 60,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:29:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 29
                        },
                        "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 28 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m       expect(html\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 29
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  27 |     test(`injected once on ${path}`, async ({ request }) => {\n  28 |       const res = await request.get(path);\n> 29 |       expect(res.status()).toBe(200);\n     |                            ^\n  30 |       const html = await res.text();\n  31 |       expect(html.split(SCRIPT).length - 1).toBe(1);\n  32 |     });\n    at /app/tests/ui/money-flow.spec.ts:29:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:52.507Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-e98f2-1db-a945-39a8-7503ed3c04da--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-e98f2-1db-a945-39a8-7503ed3c04da--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 29
                      }
                    },
                    {
                      "workerIndex": 21,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 55,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:29:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 29
                        },
                        "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 28 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m       expect(html\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 29
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  27 |     test(`injected once on ${path}`, async ({ request }) => {\n  28 |       const res = await request.get(path);\n> 29 |       expect(res.status()).toBe(200);\n     |                            ^\n  30 |       const html = await res.text();\n  31 |       expect(html.split(SCRIPT).length - 1).toBe(1);\n  32 |     });\n    at /app/tests/ui/money-flow.spec.ts:29:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:53.131Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-e98f2-1db-a945-39a8-7503ed3c04da--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 29
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-ac19bd19a112bbc633b9",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 27,
              "column": 9
            },
            {
              "title": "injected once on /candidates/a8897257-430c-2bf3-4498-349021b09ca3/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 23,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 531,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:29:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 29
                        },
                        "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 28 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m       expect(html\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 29
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  27 |     test(`injected once on ${path}`, async ({ request }) => {\n  28 |       const res = await request.get(path);\n> 29 |       expect(res.status()).toBe(200);\n     |                            ^\n  30 |       const html = await res.text();\n  31 |       expect(html.split(SCRIPT).length - 1).toBe(1);\n  32 |     });\n    at /app/tests/ui/money-flow.spec.ts:29:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.703Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-c48e8-30c-2bf3-4498-349021b09ca3--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 29
                      }
                    },
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "failed",
                      "duration": 71,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:29:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 29
                        },
                        "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 28 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m       expect(html\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 29
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  27 |     test(`injected once on ${path}`, async ({ request }) => {\n  28 |       const res = await request.get(path);\n> 29 |       expect(res.status()).toBe(200);\n     |                            ^\n  30 |       const html = await res.text();\n  31 |       expect(html.split(SCRIPT).length - 1).toBe(1);\n  32 |     });\n    at /app/tests/ui/money-flow.spec.ts:29:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:54.304Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-c48e8-30c-2bf3-4498-349021b09ca3--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-c48e8-30c-2bf3-4498-349021b09ca3--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 29
                      }
                    },
                    {
                      "workerIndex": 28,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 40,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:29:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 29
                        },
                        "snippet": "\u001b[0m \u001b[90m 27 |\u001b[39m     test(\u001b[32m`injected once on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 28 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 29 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 30 |\u001b[39m       \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 31 |\u001b[39m       expect(html\u001b[33m.\u001b[39msplit(\u001b[33mSCRIPT\u001b[39m)\u001b[33m.\u001b[39mlength \u001b[33m-\u001b[39m \u001b[35m1\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 32 |\u001b[39m     })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 29
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  27 |     test(`injected once on ${path}`, async ({ request }) => {\n  28 |       const res = await request.get(path);\n> 29 |       expect(res.status()).toBe(200);\n     |                            ^\n  30 |       const html = await res.text();\n  31 |       expect(html.split(SCRIPT).length - 1).toBe(1);\n  32 |     });\n    at /app/tests/ui/money-flow.spec.ts:29:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:54.866Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-c48e8-30c-2bf3-4498-349021b09ca3--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 29
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-1e24093b4e753edfa81f",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 27,
              "column": 9
            },
            {
              "title": "not injected on /states/032f8d61-f554-f435-2a6d-50b3c8cc01d7/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 0,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 8,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.958Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-edc3b-554-f435-2a6d-50b3c8cc01d7--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 31,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 131,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:55.486Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-edc3b-554-f435-2a6d-50b3c8cc01d7--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-edc3b-554-f435-2a6d-50b3c8cc01d7--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 35,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 26,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:56.144Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-edc3b-554-f435-2a6d-50b3c8cc01d7--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-7a4f8e57d8a34b965055",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "not injected on /elections/2024/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 38,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 27,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.691Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-df1fd-injected-on-elections-2024--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 43,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 107,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:57.232Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-df1fd-injected-on-elections-2024--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-df1fd-injected-on-elections-2024--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 45,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 25,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:57.885Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-df1fd-injected-on-elections-2024--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-2dcd02a112846a1c74ab",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "not injected on /offices/president/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 51,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 27,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:58.443Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-68b8a-ected-on-offices-president--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 54,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 553,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:59.001Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-68b8a-ected-on-offices-president--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-68b8a-ected-on-offices-president--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 62,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 23,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:00.090Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-68b8a-ected-on-offices-president--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-a7c67ffeb658d5760d58",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            },
            {
              "title": "not injected on /districts/ak/00/",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 64,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 33,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:00.623Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-cb298-njected-on-districts-ak-00--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 69,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 53,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:01.169Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-cb298-njected-on-districts-ak-00--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-cb298-njected-on-districts-ak-00--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    },
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "failed",
                      "duration": 7,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/money-flow.spec.ts:38:28",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 28,
                          "line": 38
                        },
                        "snippet": "\u001b[0m \u001b[90m 36 |\u001b[39m     test(\u001b[32m`not injected on ${path}`\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 37 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 38 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 39 |\u001b[39m       expect(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext())\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoContain(\u001b[32m'money-flow.js'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 41 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 28,
                            "line": 38
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  36 |     test(`not injected on ${path}`, async ({ request }) => {\n  37 |       const res = await request.get(path);\n> 38 |       expect(res.status()).toBe(200);\n     |                            ^\n  39 |       expect(await res.text()).not.toContain('money-flow.js');\n  40 |     });\n  41 |   }\n    at /app/tests/ui/money-flow.spec.ts:38:28"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:01.285Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-scri-cb298-njected-on-districts-ak-00--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 28,
                        "line": 38
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-70d1251eabbd50eef434",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 36,
              "column": 9
            }
          ]
        },
        {
          "title": "money-flow card toggle",
          "file": "tests/ui/money-flow.spec.ts",
          "line": 44,
          "column": 6,
          "specs": [
            {
              "title": "committee: each money card defaults to the Sankey",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 71,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15111,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:51:62",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 62,
                          "line": 51
                        },
                        "snippet": "\u001b[0m \u001b[90m 49 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m id \u001b[36mof\u001b[39m [\u001b[32m'incoming'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'outgoing'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'funded'\u001b[39m]) {\n \u001b[90m 50 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${id}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 51 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                              \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 52 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.mf-view-btn[data-view=\"sankey\"]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 53 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'ul.candidate-list'\u001b[39m))\u001b[33m.\u001b[39mtoBeHidden()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m     }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 62,
                            "line": 51
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  49 |     for (const id of ['incoming', 'outgoing', 'funded']) {\n  50 |       const card = page.locator(`#${id}`);\n> 51 |       await expect(card.locator('.money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n     |                                                              ^\n  52 |       await expect(card.locator('.mf-view-btn[data-view=\"sankey\"]')).toHaveAttribute('aria-pressed', 'true');\n  53 |       await expect(card.locator('ul.candidate-list')).toBeHidden();\n  54 |     }\n    at /app/tests/ui/money-flow.spec.ts:51:62"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:01.792Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 62,
                        "line": 51
                      }
                    },
                    {
                      "workerIndex": 123,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15474,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:51:62",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 62,
                          "line": 51
                        },
                        "snippet": "\u001b[0m \u001b[90m 49 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m id \u001b[36mof\u001b[39m [\u001b[32m'incoming'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'outgoing'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'funded'\u001b[39m]) {\n \u001b[90m 50 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${id}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 51 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                              \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 52 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.mf-view-btn[data-view=\"sankey\"]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 53 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'ul.candidate-list'\u001b[39m))\u001b[33m.\u001b[39mtoBeHidden()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m     }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 62,
                            "line": 51
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  49 |     for (const id of ['incoming', 'outgoing', 'funded']) {\n  50 |       const card = page.locator(`#${id}`);\n> 51 |       await expect(card.locator('.money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n     |                                                              ^\n  52 |       await expect(card.locator('.mf-view-btn[data-view=\"sankey\"]')).toHaveAttribute('aria-pressed', 'true');\n  53 |       await expect(card.locator('ul.candidate-list')).toBeHidden();\n  54 |     }\n    at /app/tests/ui/money-flow.spec.ts:51:62"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:17.491Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 62,
                        "line": 51
                      }
                    },
                    {
                      "workerIndex": 132,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15141,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:51:62",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 62,
                          "line": 51
                        },
                        "snippet": "\u001b[0m \u001b[90m 49 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m id \u001b[36mof\u001b[39m [\u001b[32m'incoming'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'outgoing'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'funded'\u001b[39m]) {\n \u001b[90m 50 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${id}`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 51 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                              \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 52 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.mf-view-btn[data-view=\"sankey\"]'\u001b[39m))\u001b[33m.\u001b[39mtoHaveAttribute(\u001b[32m'aria-pressed'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'true'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 53 |\u001b[39m       \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'ul.candidate-list'\u001b[39m))\u001b[33m.\u001b[39mtoBeHidden()\u001b[33m;\u001b[39m\n \u001b[90m 54 |\u001b[39m     }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 62,
                            "line": 51
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  49 |     for (const id of ['incoming', 'outgoing', 'funded']) {\n  50 |       const card = page.locator(`#${id}`);\n> 51 |       await expect(card.locator('.money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n     |                                                              ^\n  52 |       await expect(card.locator('.mf-view-btn[data-view=\"sankey\"]')).toHaveAttribute('aria-pressed', 'true');\n  53 |       await expect(card.locator('ul.candidate-list')).toBeHidden();\n  54 |     }\n    at /app/tests/ui/money-flow.spec.ts:51:62"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:33.563Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-90793-card-defaults-to-the-Sankey-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 62,
                        "line": 51
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-1379512e23819a3f13a3",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 45,
              "column": 7
            },
            {
              "title": "candidate: Top Contributors toggles between Sankey and table",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 135,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15111,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:62:60",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 60,
                          "line": 62
                        },
                        "snippet": "\u001b[0m \u001b[90m 60 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[33mHARRIS\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 61 |\u001b[39m     \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#funding'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 62 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 63 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'table'\u001b[39m))\u001b[33m.\u001b[39mtoBeHidden()\u001b[33m;\u001b[39m\n \u001b[90m 64 |\u001b[39m     \u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mlocator(\u001b[32m'.mf-view-btn[data-view=\"table\"]'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 65 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'table'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 60,
                            "line": 62
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  60 |     await page.goto(HARRIS);\n  61 |     const card = page.locator('#funding');\n> 62 |     await expect(card.locator('.money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n     |                                                            ^\n  63 |     await expect(card.locator('table')).toBeHidden();\n  64 |     await card.locator('.mf-view-btn[data-view=\"table\"]').click();\n  65 |     await expect(card.locator('table')).toBeVisible();\n    at /app/tests/ui/money-flow.spec.ts:62:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:49.277Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 60,
                        "line": 62
                      }
                    },
                    {
                      "workerIndex": 138,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15472,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:62:60",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 60,
                          "line": 62
                        },
                        "snippet": "\u001b[0m \u001b[90m 60 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[33mHARRIS\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 61 |\u001b[39m     \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#funding'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 62 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 63 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'table'\u001b[39m))\u001b[33m.\u001b[39mtoBeHidden()\u001b[33m;\u001b[39m\n \u001b[90m 64 |\u001b[39m     \u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mlocator(\u001b[32m'.mf-view-btn[data-view=\"table\"]'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 65 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'table'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 60,
                            "line": 62
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  60 |     await page.goto(HARRIS);\n  61 |     const card = page.locator('#funding');\n> 62 |     await expect(card.locator('.money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n     |                                                            ^\n  63 |     await expect(card.locator('table')).toBeHidden();\n  64 |     await card.locator('.mf-view-btn[data-view=\"table\"]').click();\n  65 |     await expect(card.locator('table')).toBeVisible();\n    at /app/tests/ui/money-flow.spec.ts:62:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:53:04.962Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 60,
                        "line": 62
                      }
                    },
                    {
                      "workerIndex": 141,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15140,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:62:60",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 60,
                          "line": 62
                        },
                        "snippet": "\u001b[0m \u001b[90m 60 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[33mHARRIS\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 61 |\u001b[39m     \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'#funding'\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 62 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'.money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 63 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'table'\u001b[39m))\u001b[33m.\u001b[39mtoBeHidden()\u001b[33m;\u001b[39m\n \u001b[90m 64 |\u001b[39m     \u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mlocator(\u001b[32m'.mf-view-btn[data-view=\"table\"]'\u001b[39m)\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m 65 |\u001b[39m     \u001b[36mawait\u001b[39m expect(card\u001b[33m.\u001b[39mlocator(\u001b[32m'table'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 60,
                            "line": 62
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding').locator('.money-flow-chart canvas')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding').locator('.money-flow-chart canvas') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding').locator('.money-flow-chart canvas')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  60 |     await page.goto(HARRIS);\n  61 |     const card = page.locator('#funding');\n> 62 |     await expect(card.locator('.money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n     |                                                            ^\n  63 |     await expect(card.locator('table')).toBeHidden();\n  64 |     await card.locator('.mf-view-btn[data-view=\"table\"]').click();\n  65 |     await expect(card.locator('table')).toBeVisible();\n    at /app/tests/ui/money-flow.spec.ts:62:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:53:21.031Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-05c02-es-between-Sankey-and-table-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 60,
                        "line": 62
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-66eef433452cb5f4518f",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 59,
              "column": 7
            },
            {
              "title": "candidate: #ie-support card follows the independent-expenditure data",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 144,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15157,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:53:36.733Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 146,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15517,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:53:52.478Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 148,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15170,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:54:08.620Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-72da7-ndependent-expenditure-data-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-1839d1cd12dab3de3014",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            },
            {
              "title": "committee: #ie-support card follows the independent-expenditure data",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 150,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15163,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:54:24.374Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 152,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15563,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:54:40.118Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 154,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15147,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:54:56.286Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-77078-ndependent-expenditure-data-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-c03ecaaa846d30d640c2",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            },
            {
              "title": "candidate: #ie-oppose card follows the independent-expenditure data",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 156,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15153,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:55:11.993Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 158,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15588,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:55:27.723Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 160,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15168,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#funding .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#funding .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#funding .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:55:43.914Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-b1fd1-ndependent-expenditure-data-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-cd8390d905a0c386907e",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            },
            {
              "title": "committee: #ie-oppose card follows the independent-expenditure data",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 162,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15159,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:55:59.671Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 164,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15472,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:56:15.403Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    },
                    {
                      "workerIndex": 166,
                      "parallelIndex": 0,
                      "status": "failed",
                      "duration": 15138,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n    at /app/tests/ui/money-flow.spec.ts:92:106",
                        "location": {
                          "file": "/app/tests/ui/money-flow.spec.ts",
                          "column": 106,
                          "line": 92
                        },
                        "snippet": "\u001b[0m \u001b[90m 90 |\u001b[39m       \u001b[36mconst\u001b[39m card \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m`#${sectionId}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 91 |\u001b[39m       \u001b[90m// the contribution cards are mounted first, so wait for them before judging the IE card\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 92 |\u001b[39m       \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(label \u001b[33m===\u001b[39m \u001b[32m'candidate'\u001b[39m \u001b[33m?\u001b[39m \u001b[32m'#funding .mf-toggle'\u001b[39m \u001b[33m:\u001b[39m \u001b[32m'#incoming .mf-toggle'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                                                                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 93 |\u001b[39m       \u001b[36mif\u001b[39m ((\u001b[36mawait\u001b[39m card\u001b[33m.\u001b[39mcount()) \u001b[33m===\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 94 |\u001b[39m         expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m 95 |\u001b[39m         \u001b[36mreturn\u001b[39m\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/money-flow.spec.ts",
                            "column": 106,
                            "line": 92
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator:  locator('#incoming .mf-toggle')\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\nTimeout:  15000ms\n\nCall log:\n\u001b[2m  - Expect \"toHaveCount\" locator('#incoming .mf-toggle') with timeout 15000ms\u001b[22m\n\u001b[2m  - waiting for locator('#incoming .mf-toggle')\u001b[22m\n\u001b[2m    34 × locator resolved to 0 elements\u001b[22m\n\u001b[2m       - unexpected value \"0\"\u001b[22m\n\n\n  90 |       const card = page.locator(`#${sectionId}`);\n  91 |       // the contribution cards are mounted first, so wait for them before judging the IE card\n> 92 |       await expect(page.locator(label === 'candidate' ? '#funding .mf-toggle' : '#incoming .mf-toggle')).toHaveCount(1, { timeout: 15000 });\n     |                                                                                                          ^\n  93 |       if ((await card.count()) === 0) {\n  94 |         expect(errors).toEqual([]);\n  95 |         return;\n    at /app/tests/ui/money-flow.spec.ts:92:106"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:56:31.536Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/money-flow-money-flow-card-f1bb4-ndependent-expenditure-data-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/money-flow.spec.ts",
                        "column": 106,
                        "line": 92
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "298b24fdb93a81fb6ce7-b82415fcc5b419d3939e",
              "file": "tests/ui/money-flow.spec.ts",
              "line": 79,
              "column": 9
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/news-feed.spec.ts",
      "file": "tests/ui/news-feed.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "news feed (source: OPENSEARCH)",
          "file": "tests/ui/news-feed.spec.ts",
          "line": 38,
          "column": 6,
          "specs": [
            {
              "title": "the feed serves articles with resolved entities",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 385,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.933Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "1af1026586bac743cce4-f13e5cf3d2f509b8f6ed",
              "file": "tests/ui/news-feed.spec.ts",
              "line": 39,
              "column": 7
            },
            {
              "title": "candidate chips carry an FEC party code, never a graph id",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 406,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.364Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "1af1026586bac743cce4-a0d92ad6dfd4d6b3887d",
              "file": "tests/ui/news-feed.spec.ts",
              "line": 47,
              "column": 7
            },
            {
              "title": "party facet keys are FEC codes and the party filter matches",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 11,
                      "parallelIndex": 11,
                      "status": "passed",
                      "duration": 1125,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.785Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "1af1026586bac743cce4-ad8d68d0c5df3f8fda27",
              "file": "tests/ui/news-feed.spec.ts",
              "line": 61,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/page-aliases.spec.ts",
      "file": "tests/ui/page-aliases.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "static page aliases",
          "file": "tests/ui/page-aliases.spec.ts",
          "line": 45,
          "column": 6,
          "specs": [
            {
              "title": "canonical vanity URL serves the stored page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.323Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-01c6492deafe21c2f9dd",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 48,
              "column": 7
            },
            {
              "title": "vanity lookup ignores case, trailing slash and index.html",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.323Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-07e8807475348f87bc20",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 52,
              "column": 7
            },
            {
              "title": "UUID URL serves the page with its vanity canonical",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.323Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-d8a32d62d9503bea2b6e",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 58,
              "column": 7
            },
            {
              "title": "secondary keys redirect to the canonical URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.323Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-79778d6ee4c3fd5bcef0",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 66,
              "column": 7
            },
            {
              "title": "legacy URL shapes redirect to the canonical URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.323Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-b1dcc28f4f8ac7c8b0e9",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 73,
              "column": 7
            },
            {
              "title": "redirect targets are served",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.324Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-1953e0e87b9ede5e9f3e",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 79,
              "column": 7
            },
            {
              "title": "an unknown address is not served as a page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                      "location": {
                        "file": "/app/tests/ui/page-aliases.spec.ts",
                        "line": 46,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": -1,
                      "parallelIndex": -1,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.324Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published aliases",
                          "location": {
                            "file": "/app/tests/ui/page-aliases.spec.ts",
                            "line": 46,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "435b8a583a557afdb4f4-cf40560c183e754a8e41",
              "file": "tests/ui/page-aliases.spec.ts",
              "line": 85,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/postalcodes.spec.ts",
      "file": "tests/ui/postalcodes.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "ZIP code overlaps (API)",
          "file": "tests/ui/postalcodes.spec.ts",
          "line": 38,
          "column": 6,
          "specs": [
            {
              "title": "78701 overlaps TX-37 and Travis County, with land area",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 71,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.946Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-fd9f717d5d792e008913",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 43,
              "column": 7
            },
            {
              "title": "a ZIP split across districts and counties: 02467 (Chestnut Hill, MA)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 44,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.065Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-b1cff2326cd3f5773029",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 54,
              "column": 7
            },
            {
              "title": "the edges read both ways: TX-37 and Travis County list 78701",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 77,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.129Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-9053988a012c927e29a5",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 61,
              "column": 7
            },
            {
              "title": "almost every ZIP has a county",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "ZIPs without a county",
                      "description": "305 of 33791"
                    }
                  ],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 13,
                      "status": "passed",
                      "duration": 11064,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.220Z",
                      "annotations": [
                        {
                          "type": "ZIPs without a county",
                          "description": "305 of 33791"
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-91224e7aa3b0911623c7",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 73,
              "column": 7
            }
          ]
        },
        {
          "title": "ZIP code pages",
          "file": "tests/ui/postalcodes.spec.ts",
          "line": 86,
          "column": 6,
          "specs": [
            {
              "title": "78701 lists TX-37 and Travis County, linked",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 12,
                      "parallelIndex": 13,
                      "status": "failed",
                      "duration": 132,
                      "error": {
                        "message": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:96:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:96:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:03.297Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    },
                    {
                      "workerIndex": 83,
                      "parallelIndex": 8,
                      "status": "failed",
                      "duration": 262,
                      "error": {
                        "message": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:96:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:96:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:04.535Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    },
                    {
                      "workerIndex": 89,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 150,
                      "error": {
                        "message": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:96:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/78701/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:96:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:05.989Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-b006c-37-and-Travis-County-linked-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-dcfd4ffc4d7c795082e0",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 95,
              "column": 7
            },
            {
              "title": "02467 lists three districts, largest overlap first, and three counties",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 93,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 128,
                      "error": {
                        "message": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:105:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:105:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:07.637Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    },
                    {
                      "workerIndex": 97,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 203,
                      "error": {
                        "message": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:105:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:105:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:08.999Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    },
                    {
                      "workerIndex": 101,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 162,
                      "error": {
                        "message": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:105:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/02467/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:105:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:10.337Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-8dbdc-ap-first-and-three-counties-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-29298cb4d577f7a7bfe7",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 104,
              "column": 7
            },
            {
              "title": "the water-only \"ZZ\" district is not listed: 60611 (Chicago, on Lake Michigan)",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 107,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 117,
                      "error": {
                        "message": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:114:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:114:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:11.650Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    },
                    {
                      "workerIndex": 111,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 241,
                      "error": {
                        "message": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:114:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:114:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:12.861Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    },
                    {
                      "workerIndex": 114,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 133,
                      "error": {
                        "message": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:114:5",
                        "location": {
                          "file": "/app/tests/ui/postalcodes.spec.ts",
                          "column": 61,
                          "line": 90
                        },
                        "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m   \u001b[36masync\u001b[39m \u001b[36mfunction\u001b[39m rendered(page\u001b[33m:\u001b[39m \u001b[36mimport\u001b[39m(\u001b[32m'@playwright/test'\u001b[39m)\u001b[33m.\u001b[39m\u001b[33mPage\u001b[39m\u001b[33m,\u001b[39m path\u001b[33m:\u001b[39m string) {\n \u001b[90m 89 |\u001b[39m     \u001b[36mconst\u001b[39m response \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(path)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m     expect(response\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 200`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                             \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m     test\u001b[33m.\u001b[39mskip(\u001b[33m!\u001b[39mresponse\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'this host serves static ZIP pages, not the us-pages renderer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m     \u001b[36mreturn\u001b[39m response\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m   }\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/postalcodes.spec.ts",
                            "column": 61,
                            "line": 90
                          },
                          "message": "Error: /postalcodes/60611/ should answer 200\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  88 |   async function rendered(page: import('@playwright/test').Page, path: string) {\n  89 |     const response = await page.goto(path);\n> 90 |     expect(response?.status(), `${path} should answer 200`).toBe(200);\n     |                                                             ^\n  91 |     test.skip(!response?.headers()['x-graph-build'], 'this host serves static ZIP pages, not the us-pages renderer');\n  92 |     return response;\n  93 |   }\n    at rendered (/app/tests/ui/postalcodes.spec.ts:90:61)\n    at /app/tests/ui/postalcodes.spec.ts:114:5"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:14.145Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-53b84-1-Chicago-on-Lake-Michigan--ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/postalcodes.spec.ts",
                        "column": 61,
                        "line": 90
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-c65d4ecf3d263b810145",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 113,
              "column": 7
            },
            {
              "title": "the ZIP list shows each ZIP with its districts",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 118,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 633,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:15.527Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/postalcodes-ZIP-code-pages-69177-each-ZIP-with-its-districts-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "9e1d6d67ffc6aff66f08-6c3a7e83de813fd10f0b",
              "file": "tests/ui/postalcodes.spec.ts",
              "line": 120,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/routing.spec.ts",
      "file": "tests/ui/routing.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "routing: canonical URLs per collection",
          "file": "tests/ui/routing.spec.ts",
          "line": 40,
          "column": 6,
          "specs": [
            {
              "title": "candidates: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.952Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-7e72ef257b7e33487ee9",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "committees: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.953Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-6a2ccbae2d970ac2c3e6",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "parties: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.953Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-9a390171348199e3fe37",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "offices: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.953Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-d3be535c29f4096c9220",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "districts: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.954Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-427ce06575114febc501",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "states: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.954Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-8e99a0e3eb3637999e3a",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "elections: sitemap URLs serve their page with rel=canonical = the sitemap URL",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.954Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-9897885e79ca8680f521",
              "file": "tests/ui/routing.spec.ts",
              "line": 44,
              "column": 9
            },
            {
              "title": "party badge links by FEC code redirect to the party page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                      "location": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "line": 41,
                        "column": 8
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "skipped",
                      "duration": 0,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.954Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "Set EXPECT_ALIASES=1 against a target with published page paths",
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "line": 41,
                            "column": 8
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "43935043b4e8ab2472fa-6f7f16146e9fcae9c6f1",
              "file": "tests/ui/routing.spec.ts",
              "line": 59,
              "column": 7
            }
          ]
        },
        {
          "title": "routing: every index link resolves",
          "file": "tests/ui/routing.spec.ts",
          "line": 71,
          "column": 6,
          "specs": [
            {
              "title": "/candidates/ first-page links all answer 200 or 301",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 13,
                      "parallelIndex": 14,
                      "status": "failed",
                      "duration": 1105,
                      "error": {
                        "message": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.954Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 25,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 603,
                      "error": {
                        "message": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:54.334Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 32,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 437,
                      "error": {
                        "message": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /candidates/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/politicians/10e488e1-4d9d-19d9-c96e-869dd0c45757/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ffd8f1ef-a47c-ad4f-d23a-b4bbc0b92fd3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8eaa6bab-c1a3-3687-7e4c-c1ff0dde4553/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b4c0d0f-e8ec-b57e-6054-09260103ccd1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/b6f801af-5a54-420b-b63d-4e4a69540d14/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/502b3f1b-f119-87ec-965b-b2bd622c947d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fc5ac3c-26f7-cd7b-b632-4ddf8b29ff92/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f4d462f8-addd-1c43-7a18-e6542446a3aa/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/9d383d64-a369-0e65-e4ff-c419209eb7f2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3c3efbb7-1f2f-eadc-99dc-72c550fd4a63/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/55a68bb1-7d8a-e606-fd56-f9e1d423e92c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/0b70128e-9639-94d4-1e31-0dc27783a511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/2a7de561-5356-faa0-5052-63aed4ddcd27/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/5b09fb7f-2092-bf70-e88f-6cf5facc4627/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/8dc4579f-7a76-c4bf-f62e-90985e629a23/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/972721e4-173f-5925-b1c4-535ff83ffd0b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e7801495-a90c-cca4-b927-e2c01302f203/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/fb735f81-5e62-7ef2-55d3-99328c68dffe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a0a0c2d7-d390-576a-065b-215948e1408b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f210f66b-2da5-effc-6f6d-7c8d542a3018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/796448fd-3ee5-3420-7ee3-b2f397cb270d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/d8f3cc02-45cd-8e07-b8c7-a0fdd57fb7fb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/3fb15bb3-d791-1f57-1cb7-409127c51411/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/865439e2-6d93-7d19-fa94-c6de36d8b403/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/44087072-9125-0776-c672-a81d7ec95de6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/264e3be5-51a4-ea82-fdf4-5bd4d98dd5d9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ab6bf360-388b-e006-acaa-17a45b4184d4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/f691ba17-df86-8a34-33c5-1086c5a5ee49/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/16091b04-e2b6-afce-c421-3eb15b5a8e7a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/bfcafdd4-62da-f107-22fb-ff5413c33fa4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac444ee4-a581-d942-62ae-9a620be14321/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/45709efc-0864-5b11-b38e-d56ad0be1107/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/86f4ffe9-3484-b620-89e2-eb1b2c6ae7a3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1e3a95c1-2210-01f9-3648-3581de7b7056/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/1b22096d-cd65-6817-0c9a-35d81d1d5aa0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/6c4071ec-b193-f654-d8ef-1f95775d17cd/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/216af8b0-f136-06f7-32cc-a8bbe029c69f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/943653f0-b72d-8ccd-6363-1512069d775f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/4f62825b-6f6a-c85c-bac7-641dd0397f9f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e73d7693-8ffd-8f14-40d3-26aa6c4b83a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ac04e4e9-804e-2714-6e54-d8a0f575fcdf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/cb3073ab-8fc7-3286-5ed2-cb384e799b80/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/87a6346a-9617-56ef-38ce-faea8f36638a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/308a7031-cb67-3510-4cc6-88666bc5b2b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/365eaaff-4fc2-0dcb-1dbf-5c824aa2ae5a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/e35d80b7-6f5e-45e9-9493-2f8f8cb8499b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/a62a533a-7d34-a658-3683-cb16957bb514/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/ef7f33e5-4520-942f-98a1-54134927bbf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/abecc483-1be3-f38c-76d1-015cc0f211f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/politicians/32ca234a-cff0-9480-953b-c525ff3139d4/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:55.588Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-d47ad-links-all-answer-200-or-301-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "43935043b4e8ab2472fa-a17ae3fc2924fcb5ebd6",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/committees/ first-page links all answer 200 or 301",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 39,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 360,
                      "error": {
                        "message": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.714Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 48,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 484,
                      "error": {
                        "message": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:58.098Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 58,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 417,
                      "error": {
                        "message": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /committees/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/committees/6873ff80-3836-afa5-b968-de82aa058140/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/bd220b34-22b0-a55e-6e2d-2204c22f84eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/21851d9c-ee74-f5e3-f71b-7c4bd398926f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a75a9110-f1db-a945-39a8-7503ed3c04da/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c9e63675-f56a-6d23-9bf7-7407e647fa4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0c1dc29f-4c16-d088-4721-a10b1634a797/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/68314d7b-b990-24f2-be2c-9d112ecc1d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f6fe33bc-bee2-9748-eb6a-c5be0956fb25/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d76ca440-e457-f70f-f79c-379015bd0f9a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3e4074a8-9fb9-4bc3-9785-fd450a1f7ca4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e924b6cf-d95b-f392-714c-9be43e5ee2f1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a22146b1-2c47-a336-fceb-df9f331c8cb9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/d25fbf59-05dc-bcff-e907-ecc47fb1f775/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/36564e87-7c2c-d1ab-53fe-95cd6312099a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/16e80634-d3c7-b266-a589-f2e8932c117d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/63a536ce-a26c-62d9-8b96-3fbb01c34130/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/6551da7f-f6d5-f838-589c-4c7e1dcda74c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c01a01a3-6f09-f990-4471-532e8c424e4a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9ff2aa18-73cb-cfff-8f63-812edb04be24/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/5f1e13a5-98f9-d324-fdee-8353c6734f4d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b1df24d0-bda5-8804-2c71-37bea43cbadf/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/17f189d5-a1c9-bcc8-4294-380cd2e699ee/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/0a0997ec-34a8-12ac-819a-5a2e2c5c25bb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9db884e1-45c5-4040-f4d9-b19380292050/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/381030ce-3d08-e1a2-08a0-9195542ad0f7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/169db133-7ab2-7f22-8178-94340fe9ab87/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/ad77a4d6-f483-392f-106e-eeffdaa3a7f9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a6d0fdc0-784c-ffff-60e6-c3d3e49dda1b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/a3c9354c-478e-cf16-5617-6f3a70c743e1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b9776ddc-ee90-e78a-56c4-ea2d43459211/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e2a7b1d4-26d4-6195-4059-bed357a7fd54/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/b4684465-d7d7-80ea-eea3-6fbf5822d664/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/3f89df19-be0c-766d-c4d4-f0f2c19c4246/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/208ba981-e516-3a69-efeb-bdb205426404/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/486952d4-c3ba-d108-0713-d2e3a7088d2a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f8ba06db-d523-60e1-8c96-a4cead3487b6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/c92c5145-1ee8-003b-5d39-6c73ecef9ce3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e947e90e-629f-2ea5-e2c5-88e92e089529/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/23c59291-b328-cf4f-ef63-3d98448d1dfe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/fdcb2d2d-0bab-d839-4df1-545017d998ac/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/babdffca-908b-dca6-97d3-ffbcc9023ff1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4f08add9-92f3-cc88-9108-343ef7b67d7f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/13a4167b-be4b-9855-71b9-a691c38ea927/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/4832e7db-d077-4039-c114-f1d2f31c7ad3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/dc420265-5a31-bc82-9936-95cc075ea830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/f53c5b7a-aaaf-3b30-af15-de01c4bf1234/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/9be0a188-23bb-b33d-6c6a-ef7243b5f511/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e644cd30-d098-358d-eddb-c5d606f59281/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/e99f30fb-3f3e-a89e-f8ad-bca7c431395f/ -> 503\",\u001b[39m\n\u001b[31m+   \"/committees/81cec4e0-81e2-e67b-0d06-0c302fdee44e/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:59.620Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-a9934-links-all-answer-200-or-301-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "43935043b4e8ab2472fa-5a49ba9c6938493d73e1",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/parties/ first-page links all answer 200 or 301",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 67,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 409,
                      "error": {
                        "message": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:00.931Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 73,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 491,
                      "error": {
                        "message": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:02.208Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 78,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 266,
                      "error": {
                        "message": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /parties/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/parties/78a61b65-dba1-0686-97bb-bdde7e1944a9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/12cac40d-b40d-abcc-6735-5e49f3925192/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b4c3baa2-547f-8f59-13d4-ab4e352f9904/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5dbee893-48fe-1da0-2259-b84f2a0c98c2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e17300bf-3fec-5895-c05e-461443a32a60/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/7d03bab7-e4a2-bdb1-ce16-952161c13084/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e04d121d-fc56-a04d-84b7-7daa6a59fe4c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/daeb4657-d625-b0e8-643f-c471b2ec39fe/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f2bd1d9a-d441-7e6b-3fe2-e3c31607f89e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/ad7637d8-9076-a056-749e-78444e72d926/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/beffbefb-6eaa-d428-3aae-1fbe8ddf0eae/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6d9df45c-0287-de76-c16c-5df8a3cd797e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/4b94bb92-6d21-e869-c21f-48e36501c46e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/f93836bb-d946-079d-7dbb-b593f71006b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d85f9b21-18ec-b69e-100c-7012e68cc86d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aaf05808-47a6-74be-40ab-d1ff8af359d0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/c6279a7f-3917-7b3d-d12a-fb889cd1f482/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/412e2507-6b3c-2d47-6fcc-7f2fe6f7aeb0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5722feb-e0d6-20f7-d53a-a45c5f602cc7/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/be2bbde4-d6b8-52d8-1913-0489d711d647/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/bc760549-18f0-3c03-6285-6177d81d0c51/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0e890051-768a-7d89-e270-f89ec801e156/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/750c1ba0-6af9-e84e-36e0-1fe8485dbf85/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/89842f65-d4bb-8318-e929-8f9ccd3da177/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/1599b155-8a42-6124-31f9-d2e9b33316eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/90b0c6c3-51ff-6d65-0a8a-98699aca94bc/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/96227b21-69de-b30b-10eb-3a6fd0b4c60d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/35754e53-3aac-0fca-6a85-768423c0c4b4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/9b51c006-e5c9-fcf7-59e9-ff355c9283b9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6dc47509-f4f3-11bd-3ce2-876372272ff3/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/6ab4d54b-82ad-eeed-3a24-34db57e9e6a4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0a0a7ea-da44-cdbd-9ee6-13dbd292a023/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/98ab48a1-0521-eb8f-a0a9-2ebc93c165f0/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fc4e412f-920b-f8c6-29f9-5025d1513817/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a76d0376-77b6-f7b3-8e28-4e7e324befef/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/0d835f05-068e-2842-9b27-37ee4006580d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/aff25f10-5d75-539b-d0b1-b8509dff8ea6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b5b68da8-d111-597b-6101-91c61a076656/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/e713a335-c9b7-42b1-d08d-9e6e1d33ed8b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/fcbe763a-6f0d-f676-9b71-ea126d2784d2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/763de19e-9fcc-ecb8-7b45-60a3cb7d5b89/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d5d1234c-539f-b01a-f5fc-3e7fc0cf5571/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/d0b9cf86-74a1-968f-ef13-75051dc1f38b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/664fbf7b-ac46-c571-4991-8b5f0fe72aba/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b6c7bfe6-dc23-4188-196d-eb5064a82d37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/5535f721-e1b1-95c7-c528-81f0be40672d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/db7e0f97-63c4-aca2-cc92-f4e0d5687b8e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/b9d4ca16-396e-b304-706c-ec38e117ca5b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/3d8fedf4-b281-4484-d88e-234f33e92922/ -> 503\",\u001b[39m\n\u001b[31m+   \"/parties/a641d26b-6772-f75c-99c6-97d93edaa936/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:03.488Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-460ac-links-all-answer-200-or-301-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "43935043b4e8ab2472fa-c682837875ef71f142bb",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/offices/ first-page links all answer 200 or 301",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 84,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 358,
                      "error": {
                        "message": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:04.783Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 90,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 455,
                      "error": {
                        "message": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:06.418Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 95,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 333,
                      "error": {
                        "message": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /offices/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 52\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/offices/684f6e2d-7105-932b-8b7f-94016580f727/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7c29b59b-2482-71ba-7557-1ba7e77daa10/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c0de7219-f25c-7dc2-d406-47a54c1225e8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/20e183aa-eb55-7916-17e3-bfd156bf9cf2/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/43da91d3-9f25-3e9f-aa08-799f0c2043ad/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b9c15a02-2752-7905-5fef-cf9fcc262b56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c2ae5b3b-a878-91c3-1ac9-7a79511495db/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9af54520-efe6-415b-0bed-cae1fe1fd830/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/619f3886-426d-8e0b-6141-a10cc7847e13/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/7562ba80-f191-b1df-8e76-54d703e10690/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/ba48d955-6e7e-670e-b85a-2537687c4175/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/62ce3c4e-7e94-b5fb-1d13-1adc42c33a37/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2c4aa8c6-3f90-7c7c-b60c-6a995ae58f56/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/6e63f5e1-5a2e-5541-a643-1be9ac075136/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91f59a74-fdb0-4ab4-dfd5-c2c40cad277b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/859cf88c-5c7e-608f-02e1-4ba5cdf53f3e/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/b279284d-a3bf-24a2-94b8-0322becdccf4/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/8159f3ce-c08b-2eef-dd56-a8a831857505/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/556b8f9b-f71d-3211-c77c-96a1ded35121/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/82fbdb29-d08e-ad19-d664-580dabfcf109/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2689b72f-c562-9f15-215e-982eb863d544/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c933155-9169-4ce9-c402-d5ba35879a08/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5a28befd-a223-b925-04a6-9fe9ca6dbc64/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fc78b296-bbc9-4535-4f6d-5493ec10dd7d/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/74a6b894-e193-d441-da59-53e3fa721166/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/772fc7ae-df97-2a68-fa25-d42a9c708193/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/5f2c9e2a-2cff-4165-901f-908650e0fd8c/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/d16d2005-352e-ecc7-45b0-0b4f7b8ae684/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2982aecb-9d48-f36f-88d9-fc40b82b4610/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/353ad230-3b7d-a4fb-2531-9ed591bab14b/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/de60e95b-1dc2-2ec3-b731-620ae5bd1d99/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9c5a47f9-0595-9cc6-e2c9-0e3947a52975/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3ac0c724-530d-109e-6ac9-c365eb9955a6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f3358a0f-10e9-5735-819d-6f0088450477/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/95ae8a5a-ffd6-c8f7-fa53-9238c0f743f8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3c5e3293-d27d-b136-2a02-ec91622d0a93/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f93d05ef-8b69-a9a7-a436-6351765712f6/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/891ab28c-a186-4f9d-d2ff-65ef725839a5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/533226f3-0a1d-40e2-0db2-fb049e671bc9/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/18215183-520f-82fb-5654-a564567985b5/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/91b97e4a-3f0b-2759-55cb-d85a475e95eb/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/9feaa467-17fe-f823-33d9-5f21abd75b20/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/f2e1164f-57ea-97c8-1979-c0e54c37fc97/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/94a14c8a-449f-b7dd-f66c-07239bbe62d1/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/0b2331dd-006b-b79e-a3dd-d946a45e0989/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/fd8d29a7-e04b-14ab-910f-494a6a156c3a/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/3aef08d2-6100-0f2f-8eb5-e2962c7160d8/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/2549732c-b16f-a63b-de01-e895271dbe45/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/24170c05-7215-1b15-7368-6fc602c86a66/ -> 503\",\u001b[39m\n\u001b[31m+   \"/offices/c9bbdc6f-a4d4-f176-9faf-83dd0aaa4016/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:07.920Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-530ff-links-all-answer-200-or-301-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "43935043b4e8ab2472fa-89f42d8f841e3082c77a",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/elections/ first-page links all answer 200 or 301",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 98,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 240,
                      "error": {
                        "message": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:09.304Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 102,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 399,
                      "error": {
                        "message": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:10.731Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    },
                    {
                      "workerIndex": 108,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 271,
                      "error": {
                        "message": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
                        "stack": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n    at /app/tests/ui/routing.spec.ts:86:60",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 60,
                          "line": 86
                        },
                        "snippet": "\u001b[0m \u001b[90m 84 |\u001b[39m         \u001b[36mif\u001b[39m (r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m200\u001b[39m \u001b[33m&&\u001b[39m r\u001b[33m.\u001b[39mstatus() \u001b[33m!==\u001b[39m \u001b[35m301\u001b[39m) broken\u001b[33m.\u001b[39mpush(\u001b[32m`${href} -> ${r.status()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 85 |\u001b[39m       }\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 86 |\u001b[39m       expect(broken\u001b[33m,\u001b[39m \u001b[32m`${index} links that do not resolve`\u001b[39m)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\n \u001b[90m    |\u001b[39m                                                            \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 87 |\u001b[39m     })\u001b[33m;\u001b[39m\n \u001b[90m 88 |\u001b[39m   }\n \u001b[90m 89 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 60,
                            "line": 86
                          },
                          "message": "Error: /elections/ links that do not resolve\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected  -  1\u001b[39m\n\u001b[31m+ Received  + 26\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+   \"/elections/2026/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2024/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2022/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2020/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2018/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2016/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2014/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2012/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2010/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2008/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2006/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2004/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2002/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/2000/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1998/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1996/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1994/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1992/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1990/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1988/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1986/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1984/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1982/ -> 503\",\u001b[39m\n\u001b[31m+   \"/elections/1980/ -> 503\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n  84 |         if (r.status() !== 200 && r.status() !== 301) broken.push(`${href} -> ${r.status()}`);\n  85 |       }\n> 86 |       expect(broken, `${index} links that do not resolve`).toEqual([]);\n     |                                                            ^\n  87 |     });\n  88 |   }\n  89 | });\n    at /app/tests/ui/routing.spec.ts:86:60"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:12.277Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-57a14-links-all-answer-200-or-301-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 60,
                        "line": 86
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "43935043b4e8ab2472fa-3800effe3714880c03cd",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/employers/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 112,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 275,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:13.626Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-96c98-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-22e23060552aa17bc15f",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            },
            {
              "title": "/vendors/ first-page links all answer 200 or 301",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 112,
                      "parallelIndex": 5,
                      "status": "passed",
                      "duration": 201,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:13.990Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-every-inde-cf190-links-all-answer-200-or-301-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-676c232661cc4f58e461",
              "file": "tests/ui/routing.spec.ts",
              "line": 73,
              "column": 9
            }
          ]
        },
        {
          "title": "routing: unknown addresses",
          "file": "tests/ui/routing.spec.ts",
          "line": 91,
          "column": 6,
          "specs": [
            {
              "title": "an unknown entity path answers 404",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 112,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 9,
                      "error": {
                        "message": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/routing.spec.ts:99:57",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 57,
                          "line": 99
                        },
                        "snippet": "\u001b[0m \u001b[90m  97 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m path \u001b[36mof\u001b[39m [\u001b[32m'/candidates/no-such-entity-zz/'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'/committees/no-such-entity-zz/'\u001b[39m]) {\n \u001b[90m  98 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m  99 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 404`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m404\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 100 |\u001b[39m     }\n \u001b[90m 101 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 102 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 57,
                            "line": 99
                          },
                          "message": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n   97 |     for (const path of ['/candidates/no-such-entity-zz/', '/committees/no-such-entity-zz/']) {\n   98 |       const res = await request.get(path, { maxRedirects: 0 });\n>  99 |       expect(res.status(), `${path} should answer 404`).toBe(404);\n      |                                                         ^\n  100 |     }\n  101 |   });\n  102 |\n    at /app/tests/ui/routing.spec.ts:99:57"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:14.203Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-unknown-ad-8ff51-own-entity-path-answers-404-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 57,
                        "line": 99
                      }
                    },
                    {
                      "workerIndex": 116,
                      "parallelIndex": 5,
                      "status": "failed",
                      "duration": 105,
                      "error": {
                        "message": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/routing.spec.ts:99:57",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 57,
                          "line": 99
                        },
                        "snippet": "\u001b[0m \u001b[90m  97 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m path \u001b[36mof\u001b[39m [\u001b[32m'/candidates/no-such-entity-zz/'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'/committees/no-such-entity-zz/'\u001b[39m]) {\n \u001b[90m  98 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m  99 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 404`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m404\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 100 |\u001b[39m     }\n \u001b[90m 101 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 102 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 57,
                            "line": 99
                          },
                          "message": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n   97 |     for (const path of ['/candidates/no-such-entity-zz/', '/committees/no-such-entity-zz/']) {\n   98 |       const res = await request.get(path, { maxRedirects: 0 });\n>  99 |       expect(res.status(), `${path} should answer 404`).toBe(404);\n      |                                                         ^\n  100 |     }\n  101 |   });\n  102 |\n    at /app/tests/ui/routing.spec.ts:99:57"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:14.786Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-unknown-ad-8ff51-own-entity-path-answers-404-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-unknown-ad-8ff51-own-entity-path-answers-404-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 57,
                        "line": 99
                      }
                    },
                    {
                      "workerIndex": 117,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 25,
                      "error": {
                        "message": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/routing.spec.ts:99:57",
                        "location": {
                          "file": "/app/tests/ui/routing.spec.ts",
                          "column": 57,
                          "line": 99
                        },
                        "snippet": "\u001b[0m \u001b[90m  97 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m path \u001b[36mof\u001b[39m [\u001b[32m'/candidates/no-such-entity-zz/'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'/committees/no-such-entity-zz/'\u001b[39m]) {\n \u001b[90m  98 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m  99 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m \u001b[32m`${path} should answer 404`\u001b[39m)\u001b[33m.\u001b[39mtoBe(\u001b[35m404\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 100 |\u001b[39m     }\n \u001b[90m 101 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 102 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/routing.spec.ts",
                            "column": 57,
                            "line": 99
                          },
                          "message": "Error: /candidates/no-such-entity-zz/ should answer 404\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n   97 |     for (const path of ['/candidates/no-such-entity-zz/', '/committees/no-such-entity-zz/']) {\n   98 |       const res = await request.get(path, { maxRedirects: 0 });\n>  99 |       expect(res.status(), `${path} should answer 404`).toBe(404);\n      |                                                         ^\n  100 |     }\n  101 |   });\n  102 |\n    at /app/tests/ui/routing.spec.ts:99:57"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:15.449Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/routing-routing-unknown-ad-8ff51-own-entity-path-answers-404-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/routing.spec.ts",
                        "column": 57,
                        "line": 99
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "43935043b4e8ab2472fa-b05908296c32b152b967",
              "file": "tests/ui/routing.spec.ts",
              "line": 92,
              "column": 7
            },
            {
              "title": "an unknown leaf entity path serves the collection shell",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 120,
                      "parallelIndex": 4,
                      "status": "passed",
                      "duration": 44,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:16.058Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "43935043b4e8ab2472fa-bcb1fae8f9ad8a3e2a8b",
              "file": "tests/ui/routing.spec.ts",
              "line": 103,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/serving.spec.ts",
      "file": "tests/ui/serving.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "sitemaps",
          "file": "tests/ui/serving.spec.ts",
          "line": 22,
          "column": 6,
          "specs": [
            {
              "title": "candidates: the index lists one file per lead character, each a urlset",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 2274,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.994Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-9767824df806d6118ac7",
              "file": "tests/ui/serving.spec.ts",
              "line": 24,
              "column": 9
            },
            {
              "title": "committees: the index lists one file per lead character, each a urlset",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 1805,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:54.323Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-94aa544e2eac8eead0f5",
              "file": "tests/ui/serving.spec.ts",
              "line": 24,
              "column": 9
            },
            {
              "title": "a single-file collection sitemap is a urlset of its own pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 56,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.137Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-63d1a6acfa8333a6974d",
              "file": "tests/ui/serving.spec.ts",
              "line": 42,
              "column": 7
            },
            {
              "title": "a sitemap that does not exist is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 9,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.204Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-27904f07922a9c50fc21",
              "file": "tests/ui/serving.spec.ts",
              "line": 50,
              "column": 7
            }
          ]
        },
        {
          "title": "static assets",
          "file": "tests/ui/serving.spec.ts",
          "line": 57,
          "column": 6,
          "specs": [
            {
              "title": "state images are SVG with CORS and caching headers",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 10,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.223Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-1fa533f3ce271bd3f9a7",
              "file": "tests/ui/serving.spec.ts",
              "line": 58,
              "column": 7
            },
            {
              "title": "district GeoJSON is application/geo+json and parses",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 15,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.242Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-84da73e251953bb6b35b",
              "file": "tests/ui/serving.spec.ts",
              "line": 68,
              "column": 7
            },
            {
              "title": "a missing asset is 404",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.265Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-ee59e849ca62b46a41f2",
              "file": "tests/ui/serving.spec.ts",
              "line": 76,
              "column": 7
            }
          ]
        },
        {
          "title": "collection roots",
          "file": "tests/ui/serving.spec.ts",
          "line": 83,
          "column": 6,
          "specs": [
            {
              "title": "a collection without its trailing slash redirects relatively to the index page",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "passed",
                      "duration": 12,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.281Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "facafd0cac1eb17ca154-35c0c19fdb3025d1d766",
              "file": "tests/ui/serving.spec.ts",
              "line": 84,
              "column": 7
            }
          ]
        },
        {
          "title": "rendered candidate and committee pages (us-pages)",
          "file": "tests/ui/serving.spec.ts",
          "line": 94,
          "column": 6,
          "specs": [
            {
              "title": "a candidate page is rendered for the current graph build",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 14,
                      "parallelIndex": 15,
                      "status": "failed",
                      "duration": 6,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:97:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 97
                        },
                        "snippet": "\u001b[0m \u001b[90m  95 |\u001b[39m   test(\u001b[32m'a candidate page is rendered for the current graph build'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m  96 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m  97 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m  98 |\u001b[39m     expect(res\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'the renderer stamps its build key'\u001b[39m)\u001b[33m.\u001b[39mtoBeTruthy()\u001b[33m;\u001b[39m\n \u001b[90m  99 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 100 |\u001b[39m     expect(canonicalPath(html))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 97
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n   95 |   test('a candidate page is rendered for the current graph build', async ({ request }) => {\n   96 |     const res = await request.get(`/candidates/${BIDEN}/`);\n>  97 |     expect(res.status()).toBe(200);\n      |                          ^\n   98 |     expect(res.headers()['x-graph-build'], 'the renderer stamps its build key').toBeTruthy();\n   99 |     const html = await res.text();\n  100 |     expect(canonicalPath(html)).toMatch(/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/);\n    at /app/tests/ui/serving.spec.ts:97:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:56.301Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dde82-for-the-current-graph-build-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 97
                      }
                    },
                    {
                      "workerIndex": 40,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 62,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:97:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 97
                        },
                        "snippet": "\u001b[0m \u001b[90m  95 |\u001b[39m   test(\u001b[32m'a candidate page is rendered for the current graph build'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m  96 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m  97 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m  98 |\u001b[39m     expect(res\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'the renderer stamps its build key'\u001b[39m)\u001b[33m.\u001b[39mtoBeTruthy()\u001b[33m;\u001b[39m\n \u001b[90m  99 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 100 |\u001b[39m     expect(canonicalPath(html))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 97
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n   95 |   test('a candidate page is rendered for the current graph build', async ({ request }) => {\n   96 |     const res = await request.get(`/candidates/${BIDEN}/`);\n>  97 |     expect(res.status()).toBe(200);\n      |                          ^\n   98 |     expect(res.headers()['x-graph-build'], 'the renderer stamps its build key').toBeTruthy();\n   99 |     const html = await res.text();\n  100 |     expect(canonicalPath(html)).toMatch(/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/);\n    at /app/tests/ui/serving.spec.ts:97:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:56.771Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dde82-for-the-current-graph-build-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dde82-for-the-current-graph-build-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 97
                      }
                    },
                    {
                      "workerIndex": 44,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 32,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:97:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 97
                        },
                        "snippet": "\u001b[0m \u001b[90m  95 |\u001b[39m   test(\u001b[32m'a candidate page is rendered for the current graph build'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m  96 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m  97 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m  98 |\u001b[39m     expect(res\u001b[33m.\u001b[39mheaders()[\u001b[32m'x-graph-build'\u001b[39m]\u001b[33m,\u001b[39m \u001b[32m'the renderer stamps its build key'\u001b[39m)\u001b[33m.\u001b[39mtoBeTruthy()\u001b[33m;\u001b[39m\n \u001b[90m  99 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 100 |\u001b[39m     expect(canonicalPath(html))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 97
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n   95 |   test('a candidate page is rendered for the current graph build', async ({ request }) => {\n   96 |     const res = await request.get(`/candidates/${BIDEN}/`);\n>  97 |     expect(res.status()).toBe(200);\n      |                          ^\n   98 |     expect(res.headers()['x-graph-build'], 'the renderer stamps its build key').toBeTruthy();\n   99 |     const html = await res.text();\n  100 |     expect(canonicalPath(html)).toMatch(/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/);\n    at /app/tests/ui/serving.spec.ts:97:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:57.390Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dde82-for-the-current-graph-build-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 97
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-2a6fb769baeb12eacefb",
              "file": "tests/ui/serving.spec.ts",
              "line": 95,
              "column": 7
            },
            {
              "title": "/politicians/<id>/ is the candidate page",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 47,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 30,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:116:24",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 24,
                          "line": 116
                        },
                        "snippet": "\u001b[0m \u001b[90m 114 |\u001b[39m     \u001b[36mconst\u001b[39m a \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 115 |\u001b[39m     \u001b[36mconst\u001b[39m b \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/politicians/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 116 |\u001b[39m     expect(b\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 117 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m b\u001b[33m.\u001b[39mtext()))\u001b[33m.\u001b[39mtoBe(canonicalPath(\u001b[36mawait\u001b[39m a\u001b[33m.\u001b[39mtext()))\u001b[33m;\u001b[39m\n \u001b[90m 118 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 119 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 24,
                            "line": 116
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  114 |     const a = await request.get(`/candidates/${BIDEN}/`);\n  115 |     const b = await request.get(`/politicians/${BIDEN}/`);\n> 116 |     expect(b.status()).toBe(200);\n      |                        ^\n  117 |     expect(canonicalPath(await b.text())).toBe(canonicalPath(await a.text()));\n  118 |   });\n  119 |\n    at /app/tests/ui/serving.spec.ts:116:24"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.943Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dcaf3-ns-id-is-the-candidate-page-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 24,
                        "line": 116
                      }
                    },
                    {
                      "workerIndex": 53,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 54,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:116:24",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 24,
                          "line": 116
                        },
                        "snippet": "\u001b[0m \u001b[90m 114 |\u001b[39m     \u001b[36mconst\u001b[39m a \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 115 |\u001b[39m     \u001b[36mconst\u001b[39m b \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/politicians/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 116 |\u001b[39m     expect(b\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 117 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m b\u001b[33m.\u001b[39mtext()))\u001b[33m.\u001b[39mtoBe(canonicalPath(\u001b[36mawait\u001b[39m a\u001b[33m.\u001b[39mtext()))\u001b[33m;\u001b[39m\n \u001b[90m 118 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 119 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 24,
                            "line": 116
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  114 |     const a = await request.get(`/candidates/${BIDEN}/`);\n  115 |     const b = await request.get(`/politicians/${BIDEN}/`);\n> 116 |     expect(b.status()).toBe(200);\n      |                        ^\n  117 |     expect(canonicalPath(await b.text())).toBe(canonicalPath(await a.text()));\n  118 |   });\n  119 |\n    at /app/tests/ui/serving.spec.ts:116:24"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:58.498Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dcaf3-ns-id-is-the-candidate-page-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dcaf3-ns-id-is-the-candidate-page-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 24,
                        "line": 116
                      }
                    },
                    {
                      "workerIndex": 56,
                      "parallelIndex": 10,
                      "status": "failed",
                      "duration": 39,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:116:24",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 24,
                          "line": 116
                        },
                        "snippet": "\u001b[0m \u001b[90m 114 |\u001b[39m     \u001b[36mconst\u001b[39m a \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 115 |\u001b[39m     \u001b[36mconst\u001b[39m b \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/politicians/${BIDEN}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 116 |\u001b[39m     expect(b\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                        \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 117 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m b\u001b[33m.\u001b[39mtext()))\u001b[33m.\u001b[39mtoBe(canonicalPath(\u001b[36mawait\u001b[39m a\u001b[33m.\u001b[39mtext()))\u001b[33m;\u001b[39m\n \u001b[90m 118 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 119 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 24,
                            "line": 116
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  114 |     const a = await request.get(`/candidates/${BIDEN}/`);\n  115 |     const b = await request.get(`/politicians/${BIDEN}/`);\n> 116 |     expect(b.status()).toBe(200);\n      |                        ^\n  117 |     expect(canonicalPath(await b.text())).toBe(canonicalPath(await a.text()));\n  118 |   });\n  119 |\n    at /app/tests/ui/serving.spec.ts:116:24"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:59.109Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-dcaf3-ns-id-is-the-candidate-page-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 24,
                        "line": 116
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-780f42d8689617265d3c",
              "file": "tests/ui/serving.spec.ts",
              "line": 113,
              "column": 7
            },
            {
              "title": "a House candidate links its party, office and district",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 59,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 29,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:122:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 122
                        },
                        "snippet": "\u001b[0m \u001b[90m 120 |\u001b[39m   test(\u001b[32m'a House candidate links its party, office and district'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 121 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${PELOSI}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 122 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 123 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 124 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m [label\u001b[33m,\u001b[39m collection] \u001b[36mof\u001b[39m [\n \u001b[90m 125 |\u001b[39m       [\u001b[32m'Party'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'parties'\u001b[39m]\u001b[33m,\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 122
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  120 |   test('a House candidate links its party, office and district', async ({ request }) => {\n  121 |     const res = await request.get(`/candidates/${PELOSI}/`);\n> 122 |     expect(res.status()).toBe(200);\n      |                          ^\n  123 |     const html = await res.text();\n  124 |     for (const [label, collection] of [\n  125 |       ['Party', 'parties'],\n    at /app/tests/ui/serving.spec.ts:122:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.644Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-8356f-s-party-office-and-district-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 122
                      }
                    },
                    {
                      "workerIndex": 63,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 49,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:122:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 122
                        },
                        "snippet": "\u001b[0m \u001b[90m 120 |\u001b[39m   test(\u001b[32m'a House candidate links its party, office and district'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 121 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${PELOSI}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 122 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 123 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 124 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m [label\u001b[33m,\u001b[39m collection] \u001b[36mof\u001b[39m [\n \u001b[90m 125 |\u001b[39m       [\u001b[32m'Party'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'parties'\u001b[39m]\u001b[33m,\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 122
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  120 |   test('a House candidate links its party, office and district', async ({ request }) => {\n  121 |     const res = await request.get(`/candidates/${PELOSI}/`);\n> 122 |     expect(res.status()).toBe(200);\n      |                          ^\n  123 |     const html = await res.text();\n  124 |     for (const [label, collection] of [\n  125 |       ['Party', 'parties'],\n    at /app/tests/ui/serving.spec.ts:122:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:00.181Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-8356f-s-party-office-and-district-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-8356f-s-party-office-and-district-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 122
                      }
                    },
                    {
                      "workerIndex": 65,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 24,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:122:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 122
                        },
                        "snippet": "\u001b[0m \u001b[90m 120 |\u001b[39m   test(\u001b[32m'a House candidate links its party, office and district'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 121 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/candidates/${PELOSI}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 122 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 123 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 124 |\u001b[39m     \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m [label\u001b[33m,\u001b[39m collection] \u001b[36mof\u001b[39m [\n \u001b[90m 125 |\u001b[39m       [\u001b[32m'Party'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'parties'\u001b[39m]\u001b[33m,\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 122
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  120 |   test('a House candidate links its party, office and district', async ({ request }) => {\n  121 |     const res = await request.get(`/candidates/${PELOSI}/`);\n> 122 |     expect(res.status()).toBe(200);\n      |                          ^\n  123 |     const html = await res.text();\n  124 |     for (const [label, collection] of [\n  125 |       ['Party', 'parties'],\n    at /app/tests/ui/serving.spec.ts:122:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:00.773Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-8356f-s-party-office-and-district-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 122
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-b0f8bf3b14a6ada4429f",
              "file": "tests/ui/serving.spec.ts",
              "line": 120,
              "column": 7
            },
            {
              "title": "a committee page lists its money and its party affinity",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 70,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 31,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:135:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 135
                        },
                        "snippet": "\u001b[0m \u001b[90m 133 |\u001b[39m   test(\u001b[32m'a committee page lists its money and its party affinity'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 134 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/committees/${DNC}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 135 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 136 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 137 |\u001b[39m     expect(canonicalPath(html))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/committees\\/[a-z0-9-]+-c00010603\\/$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 138 |\u001b[39m     \u001b[36mconst\u001b[39m ids \u001b[33m=\u001b[39m sectionIds(html)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 135
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  133 |   test('a committee page lists its money and its party affinity', async ({ request }) => {\n  134 |     const res = await request.get(`/committees/${DNC}/`);\n> 135 |     expect(res.status()).toBe(200);\n      |                          ^\n  136 |     const html = await res.text();\n  137 |     expect(canonicalPath(html)).toMatch(/^\\/committees\\/[a-z0-9-]+-c00010603\\/$/);\n  138 |     const ids = sectionIds(html);\n    at /app/tests/ui/serving.spec.ts:135:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:01.337Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-7a078-oney-and-its-party-affinity-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 135
                      }
                    },
                    {
                      "workerIndex": 72,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 57,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:135:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 135
                        },
                        "snippet": "\u001b[0m \u001b[90m 133 |\u001b[39m   test(\u001b[32m'a committee page lists its money and its party affinity'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 134 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/committees/${DNC}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 135 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 136 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 137 |\u001b[39m     expect(canonicalPath(html))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/committees\\/[a-z0-9-]+-c00010603\\/$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 138 |\u001b[39m     \u001b[36mconst\u001b[39m ids \u001b[33m=\u001b[39m sectionIds(html)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 135
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  133 |   test('a committee page lists its money and its party affinity', async ({ request }) => {\n  134 |     const res = await request.get(`/committees/${DNC}/`);\n> 135 |     expect(res.status()).toBe(200);\n      |                          ^\n  136 |     const html = await res.text();\n  137 |     expect(canonicalPath(html)).toMatch(/^\\/committees\\/[a-z0-9-]+-c00010603\\/$/);\n  138 |     const ids = sectionIds(html);\n    at /app/tests/ui/serving.spec.ts:135:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:01.882Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-7a078-oney-and-its-party-affinity-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-7a078-oney-and-its-party-affinity-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 135
                      }
                    },
                    {
                      "workerIndex": 76,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 32,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:135:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 135
                        },
                        "snippet": "\u001b[0m \u001b[90m 133 |\u001b[39m   test(\u001b[32m'a committee page lists its money and its party affinity'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 134 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/committees/${DNC}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 135 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 136 |\u001b[39m     \u001b[36mconst\u001b[39m html \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()\u001b[33m;\u001b[39m\n \u001b[90m 137 |\u001b[39m     expect(canonicalPath(html))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/committees\\/[a-z0-9-]+-c00010603\\/$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 138 |\u001b[39m     \u001b[36mconst\u001b[39m ids \u001b[33m=\u001b[39m sectionIds(html)\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 135
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  133 |   test('a committee page lists its money and its party affinity', async ({ request }) => {\n  134 |     const res = await request.get(`/committees/${DNC}/`);\n> 135 |     expect(res.status()).toBe(200);\n      |                          ^\n  136 |     const html = await res.text();\n  137 |     expect(canonicalPath(html)).toMatch(/^\\/committees\\/[a-z0-9-]+-c00010603\\/$/);\n  138 |     const ids = sectionIds(html);\n    at /app/tests/ui/serving.spec.ts:135:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:02.463Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-7a078-oney-and-its-party-affinity-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 135
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-7f762ab6b05cacd4df49",
              "file": "tests/ui/serving.spec.ts",
              "line": 133,
              "column": 7
            },
            {
              "title": "an upper-case path renders with the lower-case canonical",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 8,
                      "parallelIndex": 8,
                      "status": "failed",
                      "duration": 16,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:151:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 151
                        },
                        "snippet": "\u001b[0m \u001b[90m 149 |\u001b[39m   test(\u001b[32m'an upper-case path renders with the lower-case canonical'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 150 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/CANDIDATES/${BIDEN.toUpperCase()}/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 151 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 152 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 153 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 154 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 151
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  149 |   test('an upper-case path renders with the lower-case canonical', async ({ request }) => {\n  150 |     const res = await request.get(`/CANDIDATES/${BIDEN.toUpperCase()}/`, { maxRedirects: 0 });\n> 151 |     expect(res.status()).toBe(200);\n      |                          ^\n  152 |     expect(canonicalPath(await res.text())).toMatch(/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/);\n  153 |   });\n  154 |\n    at /app/tests/ui/serving.spec.ts:151:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:02.550Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-c4a4c-th-the-lower-case-canonical-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 151
                      }
                    },
                    {
                      "workerIndex": 77,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 133,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:151:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 151
                        },
                        "snippet": "\u001b[0m \u001b[90m 149 |\u001b[39m   test(\u001b[32m'an upper-case path renders with the lower-case canonical'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 150 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/CANDIDATES/${BIDEN.toUpperCase()}/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 151 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 152 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 153 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 154 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 151
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  149 |   test('an upper-case path renders with the lower-case canonical', async ({ request }) => {\n  150 |     const res = await request.get(`/CANDIDATES/${BIDEN.toUpperCase()}/`, { maxRedirects: 0 });\n> 151 |     expect(res.status()).toBe(200);\n      |                          ^\n  152 |     expect(canonicalPath(await res.text())).toMatch(/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/);\n  153 |   });\n  154 |\n    at /app/tests/ui/serving.spec.ts:151:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:03.042Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-c4a4c-th-the-lower-case-canonical-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-c4a4c-th-the-lower-case-canonical-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 151
                      }
                    },
                    {
                      "workerIndex": 81,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 23,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:151:26",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 26,
                          "line": 151
                        },
                        "snippet": "\u001b[0m \u001b[90m 149 |\u001b[39m   test(\u001b[32m'an upper-case path renders with the lower-case canonical'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ request }) \u001b[33m=>\u001b[39m {\n \u001b[90m 150 |\u001b[39m     \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(\u001b[32m`/CANDIDATES/${BIDEN.toUpperCase()}/`\u001b[39m\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 151 |\u001b[39m     expect(res\u001b[33m.\u001b[39mstatus())\u001b[33m.\u001b[39mtoBe(\u001b[35m200\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                          \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 152 |\u001b[39m     expect(canonicalPath(\u001b[36mawait\u001b[39m res\u001b[33m.\u001b[39mtext()))\u001b[33m.\u001b[39mtoMatch(\u001b[35m/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 153 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 154 |\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 26,
                            "line": 151
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m200\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  149 |   test('an upper-case path renders with the lower-case canonical', async ({ request }) => {\n  150 |     const res = await request.get(`/CANDIDATES/${BIDEN.toUpperCase()}/`, { maxRedirects: 0 });\n> 151 |     expect(res.status()).toBe(200);\n      |                          ^\n  152 |     expect(canonicalPath(await res.text())).toMatch(/^\\/candidates\\/[a-z0-9-]+-p80000722\\/$/);\n  153 |   });\n  154 |\n    at /app/tests/ui/serving.spec.ts:151:26"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:03.754Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-c4a4c-th-the-lower-case-canonical-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 26,
                        "line": 151
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-a1e3e44aa623c8acb1ed",
              "file": "tests/ui/serving.spec.ts",
              "line": 149,
              "column": 7
            },
            {
              "title": "unknown candidate, committee and party paths are 404 without a static fallback",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 82,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 32,
                      "error": {
                        "message": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:159:34",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 34,
                          "line": 159
                        },
                        "snippet": "\u001b[0m \u001b[90m 157 |\u001b[39m       \u001b[36mconst\u001b[39m started \u001b[33m=\u001b[39m \u001b[33mDate\u001b[39m\u001b[33m.\u001b[39mnow()\u001b[33m;\u001b[39m\n \u001b[90m 158 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 159 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m path)\u001b[33m.\u001b[39mtoBe(\u001b[35m404\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 160 |\u001b[39m       expect(\u001b[33mDate\u001b[39m\u001b[33m.\u001b[39mnow() \u001b[33m-\u001b[39m started\u001b[33m,\u001b[39m \u001b[32m`${path} answers promptly`\u001b[39m)\u001b[33m.\u001b[39mtoBeLessThan(\u001b[35m5000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 161 |\u001b[39m     }\n \u001b[90m 162 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 34,
                            "line": 159
                          },
                          "message": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  157 |       const started = Date.now();\n  158 |       const res = await request.get(path, { maxRedirects: 0 });\n> 159 |       expect(res.status(), path).toBe(404);\n      |                                  ^\n  160 |       expect(Date.now() - started, `${path} answers promptly`).toBeLessThan(5000);\n  161 |     }\n  162 |   });\n    at /app/tests/ui/serving.spec.ts:159:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:04.300Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-6d316-4-without-a-static-fallback-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 34,
                        "line": 159
                      }
                    },
                    {
                      "workerIndex": 85,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 52,
                      "error": {
                        "message": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:159:34",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 34,
                          "line": 159
                        },
                        "snippet": "\u001b[0m \u001b[90m 157 |\u001b[39m       \u001b[36mconst\u001b[39m started \u001b[33m=\u001b[39m \u001b[33mDate\u001b[39m\u001b[33m.\u001b[39mnow()\u001b[33m;\u001b[39m\n \u001b[90m 158 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 159 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m path)\u001b[33m.\u001b[39mtoBe(\u001b[35m404\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 160 |\u001b[39m       expect(\u001b[33mDate\u001b[39m\u001b[33m.\u001b[39mnow() \u001b[33m-\u001b[39m started\u001b[33m,\u001b[39m \u001b[32m`${path} answers promptly`\u001b[39m)\u001b[33m.\u001b[39mtoBeLessThan(\u001b[35m5000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 161 |\u001b[39m     }\n \u001b[90m 162 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 34,
                            "line": 159
                          },
                          "message": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  157 |       const started = Date.now();\n  158 |       const res = await request.get(path, { maxRedirects: 0 });\n> 159 |       expect(res.status(), path).toBe(404);\n      |                                  ^\n  160 |       expect(Date.now() - started, `${path} answers promptly`).toBeLessThan(5000);\n  161 |     }\n  162 |   });\n    at /app/tests/ui/serving.spec.ts:159:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:04.839Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-6d316-4-without-a-static-fallback-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-6d316-4-without-a-static-fallback-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 34,
                        "line": 159
                      }
                    },
                    {
                      "workerIndex": 88,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 24,
                      "error": {
                        "message": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m",
                        "stack": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n    at /app/tests/ui/serving.spec.ts:159:34",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 34,
                          "line": 159
                        },
                        "snippet": "\u001b[0m \u001b[90m 157 |\u001b[39m       \u001b[36mconst\u001b[39m started \u001b[33m=\u001b[39m \u001b[33mDate\u001b[39m\u001b[33m.\u001b[39mnow()\u001b[33m;\u001b[39m\n \u001b[90m 158 |\u001b[39m       \u001b[36mconst\u001b[39m res \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m request\u001b[33m.\u001b[39m\u001b[36mget\u001b[39m(path\u001b[33m,\u001b[39m { maxRedirects\u001b[33m:\u001b[39m \u001b[35m0\u001b[39m })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 159 |\u001b[39m       expect(res\u001b[33m.\u001b[39mstatus()\u001b[33m,\u001b[39m path)\u001b[33m.\u001b[39mtoBe(\u001b[35m404\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 160 |\u001b[39m       expect(\u001b[33mDate\u001b[39m\u001b[33m.\u001b[39mnow() \u001b[33m-\u001b[39m started\u001b[33m,\u001b[39m \u001b[32m`${path} answers promptly`\u001b[39m)\u001b[33m.\u001b[39mtoBeLessThan(\u001b[35m5000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 161 |\u001b[39m     }\n \u001b[90m 162 |\u001b[39m   })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 34,
                            "line": 159
                          },
                          "message": "Error: /candidates/no-such-entity-zz/\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m404\u001b[39m\nReceived: \u001b[31m503\u001b[39m\n\n  157 |       const started = Date.now();\n  158 |       const res = await request.get(path, { maxRedirects: 0 });\n> 159 |       expect(res.status(), path).toBe(404);\n      |                                  ^\n  160 |       expect(Date.now() - started, `${path} answers promptly`).toBeLessThan(5000);\n  161 |     }\n  162 |   });\n    at /app/tests/ui/serving.spec.ts:159:34"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:05.415Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-6d316-4-without-a-static-fallback-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 34,
                        "line": 159
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-174b09c2fe387e2121a8",
              "file": "tests/ui/serving.spec.ts",
              "line": 155,
              "column": 7
            },
            {
              "title": "the money-flow Sankey and the Graph button work on a rendered candidate page",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 3,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 5107,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n\n    at /app/tests/ui/serving.spec.ts:168:38",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 38,
                          "line": 168
                        },
                        "snippet": "\u001b[0m \u001b[90m 166 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m (e) \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(\u001b[33mString\u001b[39m(e)))\u001b[33m;\u001b[39m\n \u001b[90m 167 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/candidates/${PELOSI}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 168 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoContainText(\u001b[32m'PELOSI'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 169 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#funding .money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 170 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 171 |\u001b[39m     expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 38,
                            "line": 168
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n\n\n  166 |     page.on('pageerror', (e) => errors.push(String(e)));\n  167 |     await page.goto(`/candidates/${PELOSI}/`);\n> 168 |     await expect(page.locator('h1')).toContainText('PELOSI');\n      |                                      ^\n  169 |     await expect(page.locator('#funding .money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n  170 |     await expect(page.locator('button.eg-open')).toHaveCount(1, { timeout: 15000 });\n  171 |     expect(errors).toEqual([]);\n    at /app/tests/ui/serving.spec.ts:168:38"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:05.496Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 38,
                        "line": 168
                      }
                    },
                    {
                      "workerIndex": 106,
                      "parallelIndex": 3,
                      "status": "failed",
                      "duration": 5261,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n\n    at /app/tests/ui/serving.spec.ts:168:38",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 38,
                          "line": 168
                        },
                        "snippet": "\u001b[0m \u001b[90m 166 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m (e) \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(\u001b[33mString\u001b[39m(e)))\u001b[33m;\u001b[39m\n \u001b[90m 167 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/candidates/${PELOSI}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 168 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoContainText(\u001b[32m'PELOSI'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 169 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#funding .money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 170 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 171 |\u001b[39m     expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 38,
                            "line": 168
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n\n\n  166 |     page.on('pageerror', (e) => errors.push(String(e)));\n  167 |     await page.goto(`/candidates/${PELOSI}/`);\n> 168 |     await expect(page.locator('h1')).toContainText('PELOSI');\n      |                                      ^\n  169 |     await expect(page.locator('#funding .money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n  170 |     await expect(page.locator('button.eg-open')).toHaveCount(1, { timeout: 15000 });\n  171 |     expect(errors).toEqual([]);\n    at /app/tests/ui/serving.spec.ts:168:38"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:11.161Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 38,
                        "line": 168
                      }
                    },
                    {
                      "workerIndex": 122,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 5209,
                      "error": {
                        "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n",
                        "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n\n    at /app/tests/ui/serving.spec.ts:168:38",
                        "location": {
                          "file": "/app/tests/ui/serving.spec.ts",
                          "column": 38,
                          "line": 168
                        },
                        "snippet": "\u001b[0m \u001b[90m 166 |\u001b[39m     page\u001b[33m.\u001b[39mon(\u001b[32m'pageerror'\u001b[39m\u001b[33m,\u001b[39m (e) \u001b[33m=>\u001b[39m errors\u001b[33m.\u001b[39mpush(\u001b[33mString\u001b[39m(e)))\u001b[33m;\u001b[39m\n \u001b[90m 167 |\u001b[39m     \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`/candidates/${PELOSI}/`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 168 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'h1'\u001b[39m))\u001b[33m.\u001b[39mtoContainText(\u001b[32m'PELOSI'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                      \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 169 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'#funding .money-flow-chart canvas'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 170 |\u001b[39m     \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'button.eg-open'\u001b[39m))\u001b[33m.\u001b[39mtoHaveCount(\u001b[35m1\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 171 |\u001b[39m     expect(errors)\u001b[33m.\u001b[39mtoEqual([])\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/serving.spec.ts",
                            "column": 38,
                            "line": 168
                          },
                          "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoContainText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('h1')\nExpected substring: \u001b[32m\"PELOSI\"\u001b[39m\nReceived string:    \u001b[31m\"503 Service Temporarily Unavailable\"\u001b[39m\nTimeout: 5000ms\n\nCall log:\n\u001b[2m  - Expect \"toContainText\" locator('h1') with timeout 5000ms\u001b[22m\n\u001b[2m  - waiting for locator('h1')\u001b[22m\n\u001b[2m    14 × locator resolved to <h1>503 Service Temporarily Unavailable</h1>\u001b[22m\n\u001b[2m       - unexpected value \"503 Service Temporarily Unavailable\"\u001b[22m\n\n\n  166 |     page.on('pageerror', (e) => errors.push(String(e)));\n  167 |     await page.goto(`/candidates/${PELOSI}/`);\n> 168 |     await expect(page.locator('h1')).toContainText('PELOSI');\n      |                                      ^\n  169 |     await expect(page.locator('#funding .money-flow-chart canvas')).toHaveCount(1, { timeout: 15000 });\n  170 |     await expect(page.locator('button.eg-open')).toHaveCount(1, { timeout: 15000 });\n  171 |     expect(errors).toEqual([]);\n    at /app/tests/ui/serving.spec.ts:168:38"
                        }
                      ],
                      "stdout": [],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:17.021Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/serving-rendered-candidate-b4a46-n-a-rendered-candidate-page-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/serving.spec.ts",
                        "column": 38,
                        "line": 168
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "facafd0cac1eb17ca154-bdca150ccaebfd909ea8",
              "file": "tests/ui/serving.spec.ts",
              "line": 164,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/sitemap.spec.ts",
      "file": "tests/ui/sitemap.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "sitemap URL validation",
          "file": "tests/ui/sitemap.spec.ts",
          "line": 202,
          "column": 6,
          "specs": [
            {
              "title": "sitemap index loads and contains child sitemaps",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 15,
                      "parallelIndex": 16,
                      "status": "passed",
                      "duration": 180,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.992Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-4660f-and-contains-child-sitemaps-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-c60e93b9c98b61485b7c",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 204,
              "column": 7
            },
            {
              "title": "sitemap index lists no nested index",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 15,
                      "parallelIndex": 16,
                      "status": "passed",
                      "duration": 2939,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.914Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-9c49175d52fd8bbb5808",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 220,
              "column": 7
            },
            {
              "title": "candidates sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 15,
                      "parallelIndex": 16,
                      "status": "failed",
                      "duration": 323,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:251:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 251
                        },
                        "snippet": "\u001b[0m \u001b[90m 249 |\u001b[39m\n \u001b[90m 250 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from candidates sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 251 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 252 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 253 |\u001b[39m\n \u001b[90m 254 |\u001b[39m   test(\u001b[32m'committees sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 251
                          },
                          "message": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m\n\n  249 |\n  250 |     console.log(`Tested ${result.tested} URLs from candidates sitemap`);\n> 251 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  252 |   });\n  253 |\n  254 |   test('committees sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:251:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates.xml: https://us.elect.info/candidates/sitemap-candidates-z.xml, https://us.elect.info/candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "  Found 128 URLs in /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates-z.xml: https://us.elect.info/candidates/zach-kovach-h4sd01039/, https://us.elect.info/candidates/zane-baize-p40009375/, https://us.elect.info/candidates/zechariah-blanchard-h4fl07095/, https://us.elect.info/candidates/zachary-krueger-p40011231/, https://us.elect.info/candidates/zoe-r-leclercq-h8la03029/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zach-kovach-h4sd01039/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zane-baize-p40009375/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zane-baize-p40009375/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zechariah-blanchard-h4fl07095/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zachary-krueger-p40011231/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zoe-r-leclercq-h8la03029/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "  Found 4836 URLs in /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates-m.xml: https://us.elect.info/candidates/mary-jones-h8va02079/, https://us.elect.info/candidates/mark-d-otto-h6nc07162/, https://us.elect.info/candidates/michael-h-romero-h6nm03067/, https://us.elect.info/candidates/mason-cysewski-s4tx00631/, https://us.elect.info/candidates/michael-h-barnard-h4in04016/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mary-jones-h8va02079/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mary-jones-h8va02079/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mark-d-otto-h6nc07162/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/michael-h-romero-h6nm03067/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mason-cysewski-s4tx00631/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/michael-h-barnard-h4in04016/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from candidates sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:55.863Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 251
                      }
                    },
                    {
                      "workerIndex": 37,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 513,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:251:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 251
                        },
                        "snippet": "\u001b[0m \u001b[90m 249 |\u001b[39m\n \u001b[90m 250 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from candidates sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 251 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 252 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 253 |\u001b[39m\n \u001b[90m 254 |\u001b[39m   test(\u001b[32m'committees sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 251
                          },
                          "message": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m\n\n  249 |\n  250 |     console.log(`Tested ${result.tested} URLs from candidates sitemap`);\n> 251 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  252 |   });\n  253 |\n  254 |   test('committees sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:251:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates.xml: https://us.elect.info/candidates/sitemap-candidates-z.xml, https://us.elect.info/candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "  Found 128 URLs in /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates-z.xml: https://us.elect.info/candidates/zach-kovach-h4sd01039/, https://us.elect.info/candidates/zane-baize-p40009375/, https://us.elect.info/candidates/zechariah-blanchard-h4fl07095/, https://us.elect.info/candidates/zachary-krueger-p40011231/, https://us.elect.info/candidates/zoe-r-leclercq-h8la03029/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zach-kovach-h4sd01039/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zane-baize-p40009375/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zane-baize-p40009375/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zechariah-blanchard-h4fl07095/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zachary-krueger-p40011231/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zoe-r-leclercq-h8la03029/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "  Found 4836 URLs in /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates-m.xml: https://us.elect.info/candidates/mary-jones-h8va02079/, https://us.elect.info/candidates/mark-d-otto-h6nc07162/, https://us.elect.info/candidates/michael-h-romero-h6nm03067/, https://us.elect.info/candidates/mason-cysewski-s4tx00631/, https://us.elect.info/candidates/michael-h-barnard-h4in04016/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mary-jones-h8va02079/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mary-jones-h8va02079/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mark-d-otto-h6nc07162/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/michael-h-romero-h6nm03067/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mason-cysewski-s4tx00631/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/michael-h-barnard-h4in04016/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from candidates sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:51:56.680Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 251
                      }
                    },
                    {
                      "workerIndex": 49,
                      "parallelIndex": 7,
                      "status": "failed",
                      "duration": 353,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:251:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 251
                        },
                        "snippet": "\u001b[0m \u001b[90m 249 |\u001b[39m\n \u001b[90m 250 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from candidates sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 251 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 252 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 253 |\u001b[39m\n \u001b[90m 254 |\u001b[39m   test(\u001b[32m'committees sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 251
                          },
                          "message": "Error: Errors: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503, Expected 200 for /candidates/zane-baize-p40009375/, got 503, Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503, Expected 200 for /candidates/zachary-krueger-p40011231/, got 503, Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503, Expected 200 for /candidates/mary-jones-h8va02079/, got 503, Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503, Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503, Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503, Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\", \"Expected 200 for /candidates/zane-baize-p40009375/, got 503\", \"Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\", \"Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\", \"Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\", \"Expected 200 for /candidates/mary-jones-h8va02079/, got 503\", \"Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\", \"Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\", \"Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\", \"Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\"]\u001b[39m\n\n  249 |\n  250 |     console.log(`Tested ${result.tested} URLs from candidates sitemap`);\n> 251 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  252 |   });\n  253 |\n  254 |   test('committees sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:251:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates.xml: https://us.elect.info/candidates/sitemap-candidates-z.xml, https://us.elect.info/candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "  Found 128 URLs in /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates-z.xml: https://us.elect.info/candidates/zach-kovach-h4sd01039/, https://us.elect.info/candidates/zane-baize-p40009375/, https://us.elect.info/candidates/zechariah-blanchard-h4fl07095/, https://us.elect.info/candidates/zachary-krueger-p40011231/, https://us.elect.info/candidates/zoe-r-leclercq-h8la03029/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zach-kovach-h4sd01039/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zach-kovach-h4sd01039/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zane-baize-p40009375/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zane-baize-p40009375/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zechariah-blanchard-h4fl07095/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zechariah-blanchard-h4fl07095/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zachary-krueger-p40011231/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zachary-krueger-p40011231/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/zoe-r-leclercq-h8la03029/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/zoe-r-leclercq-h8la03029/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-z.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "  Found 4836 URLs in /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /candidates/sitemap-candidates-m.xml: https://us.elect.info/candidates/mary-jones-h8va02079/, https://us.elect.info/candidates/mark-d-otto-h6nc07162/, https://us.elect.info/candidates/michael-h-romero-h6nm03067/, https://us.elect.info/candidates/mason-cysewski-s4tx00631/, https://us.elect.info/candidates/michael-h-barnard-h4in04016/\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mary-jones-h8va02079/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mary-jones-h8va02079/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mark-d-otto-h6nc07162/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mark-d-otto-h6nc07162/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/michael-h-romero-h6nm03067/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/michael-h-romero-h6nm03067/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/mason-cysewski-s4tx00631/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/mason-cysewski-s4tx00631/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /candidates/michael-h-barnard-h4in04016/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /candidates/michael-h-barnard-h4in04016/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /candidates/sitemap-candidates-m.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /candidates/sitemap-candidates.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from candidates sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:51:58.204Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-6d4ff-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 251
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-a80be8d946ded7f69d5c",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 235,
              "column": 7
            },
            {
              "title": "committees sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 120000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 57,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 331,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:270:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 270
                        },
                        "snippet": "\u001b[0m \u001b[90m 268 |\u001b[39m\n \u001b[90m 269 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from committees sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 270 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 271 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 272 |\u001b[39m\n \u001b[90m 273 |\u001b[39m   test(\u001b[32m'parties sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 270
                          },
                          "message": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m\n\n  268 |\n  269 |     console.log(`Tested ${result.tested} URLs from committees sitemap`);\n> 270 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  271 |   });\n  272 |\n  273 |   test('parties sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:270:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees.xml: https://us.elect.info/committees/sitemap-committees-v.xml, https://us.elect.info/committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "  Found 1562 URLs in /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees-v.xml: https://us.elect.info/committees/virginia-green-victory-2000-c00359141/, https://us.elect.info/committees/virginia-korean-americans-for-change-c00456954/, https://us.elect.info/committees/voice-for-vets-c00626978/, https://us.elect.info/committees/victory-89-federal-committee-c00237727/, https://us.elect.info/committees/votevets-action-fund-c90010620/\n"
                        },
                        {
                          "text": "  Testing page: /committees/virginia-green-victory-2000-c00359141/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/virginia-korean-americans-for-change-c00456954/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/voice-for-vets-c00626978/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/voice-for-vets-c00626978/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/victory-89-federal-committee-c00237727/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/votevets-action-fund-c90010620/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "  Found 4888 URLs in /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees-b.xml: https://us.elect.info/committees/brian-babin-for-congress-c00304220/, https://us.elect.info/committees/beauchamp-for-congress-c00362319/, https://us.elect.info/committees/bay-county-democratic-executive-committee-c00759415/, https://us.elect.info/committees/boyd-for-congress-committee-c00272658/, https://us.elect.info/committees/berkowitz-for-congress-c00440388/\n"
                        },
                        {
                          "text": "  Testing page: /committees/brian-babin-for-congress-c00304220/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/beauchamp-for-congress-c00362319/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/bay-county-democratic-executive-committee-c00759415/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/boyd-for-congress-committee-c00272658/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/berkowitz-for-congress-c00440388/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from committees sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.581Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 270
                      }
                    },
                    {
                      "workerIndex": 66,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 579,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:270:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 270
                        },
                        "snippet": "\u001b[0m \u001b[90m 268 |\u001b[39m\n \u001b[90m 269 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from committees sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 270 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 271 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 272 |\u001b[39m\n \u001b[90m 273 |\u001b[39m   test(\u001b[32m'parties sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 270
                          },
                          "message": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m\n\n  268 |\n  269 |     console.log(`Tested ${result.tested} URLs from committees sitemap`);\n> 270 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  271 |   });\n  272 |\n  273 |   test('parties sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:270:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees.xml: https://us.elect.info/committees/sitemap-committees-v.xml, https://us.elect.info/committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "  Found 1562 URLs in /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees-v.xml: https://us.elect.info/committees/virginia-green-victory-2000-c00359141/, https://us.elect.info/committees/virginia-korean-americans-for-change-c00456954/, https://us.elect.info/committees/voice-for-vets-c00626978/, https://us.elect.info/committees/victory-89-federal-committee-c00237727/, https://us.elect.info/committees/votevets-action-fund-c90010620/\n"
                        },
                        {
                          "text": "  Testing page: /committees/virginia-green-victory-2000-c00359141/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/virginia-korean-americans-for-change-c00456954/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/voice-for-vets-c00626978/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/voice-for-vets-c00626978/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/victory-89-federal-committee-c00237727/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/votevets-action-fund-c90010620/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "  Found 4888 URLs in /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees-b.xml: https://us.elect.info/committees/brian-babin-for-congress-c00304220/, https://us.elect.info/committees/beauchamp-for-congress-c00362319/, https://us.elect.info/committees/bay-county-democratic-executive-committee-c00759415/, https://us.elect.info/committees/boyd-for-congress-committee-c00272658/, https://us.elect.info/committees/berkowitz-for-congress-c00440388/\n"
                        },
                        {
                          "text": "  Testing page: /committees/brian-babin-for-congress-c00304220/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/beauchamp-for-congress-c00362319/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/bay-county-democratic-executive-committee-c00759415/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/boyd-for-congress-committee-c00272658/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/berkowitz-for-congress-c00440388/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from committees sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:00.908Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 270
                      }
                    },
                    {
                      "workerIndex": 74,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 353,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:270:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 270
                        },
                        "snippet": "\u001b[0m \u001b[90m 268 |\u001b[39m\n \u001b[90m 269 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from committees sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 270 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 271 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 272 |\u001b[39m\n \u001b[90m 273 |\u001b[39m   test(\u001b[32m'parties sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 270
                          },
                          "message": "Error: Errors: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503, Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503, Expected 200 for /committees/voice-for-vets-c00626978/, got 503, Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503, Expected 200 for /committees/votevets-action-fund-c90010620/, got 503, Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503, Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503, Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503, Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503, Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m10\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\", \"Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\", \"Expected 200 for /committees/voice-for-vets-c00626978/, got 503\", \"Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\", \"Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\", \"Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\", \"Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\", \"Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\", \"Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\", \"Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\"]\u001b[39m\n\n  268 |\n  269 |     console.log(`Tested ${result.tested} URLs from committees sitemap`);\n> 270 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  271 |   });\n  272 |\n  273 |   test('parties sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:270:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 27 URLs in /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Detected sitemap index, sampling 2 child sitemaps\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees.xml: https://us.elect.info/committees/sitemap-committees-v.xml, https://us.elect.info/committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "  Found 1562 URLs in /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees-v.xml: https://us.elect.info/committees/virginia-green-victory-2000-c00359141/, https://us.elect.info/committees/virginia-korean-americans-for-change-c00456954/, https://us.elect.info/committees/voice-for-vets-c00626978/, https://us.elect.info/committees/victory-89-federal-committee-c00237727/, https://us.elect.info/committees/votevets-action-fund-c90010620/\n"
                        },
                        {
                          "text": "  Testing page: /committees/virginia-green-victory-2000-c00359141/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/virginia-green-victory-2000-c00359141/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/virginia-korean-americans-for-change-c00456954/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/virginia-korean-americans-for-change-c00456954/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/voice-for-vets-c00626978/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/voice-for-vets-c00626978/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/victory-89-federal-committee-c00237727/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/victory-89-federal-committee-c00237727/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/votevets-action-fund-c90010620/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/votevets-action-fund-c90010620/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-v.xml\n"
                        },
                        {
                          "text": "Processing child sitemap: /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "  Found 4888 URLs in /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /committees/sitemap-committees-b.xml: https://us.elect.info/committees/brian-babin-for-congress-c00304220/, https://us.elect.info/committees/beauchamp-for-congress-c00362319/, https://us.elect.info/committees/bay-county-democratic-executive-committee-c00759415/, https://us.elect.info/committees/boyd-for-congress-committee-c00272658/, https://us.elect.info/committees/berkowitz-for-congress-c00440388/\n"
                        },
                        {
                          "text": "  Testing page: /committees/brian-babin-for-congress-c00304220/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/brian-babin-for-congress-c00304220/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/beauchamp-for-congress-c00362319/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/beauchamp-for-congress-c00362319/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/bay-county-democratic-executive-committee-c00759415/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/bay-county-democratic-executive-committee-c00759415/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/boyd-for-congress-committee-c00272658/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/boyd-for-congress-committee-c00272658/, got 503\n"
                        },
                        {
                          "text": "  Testing page: /committees/berkowitz-for-congress-c00440388/\n"
                        },
                        {
                          "text": "    ERROR: Expected 200 for /committees/berkowitz-for-congress-c00440388/, got 503\n"
                        },
                        {
                          "text": "  Tested 5 URLs from /committees/sitemap-committees-b.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from /committees/sitemap-committees.xml\n"
                        },
                        {
                          "text": "Tested 10 URLs from committees sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:02.358Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-0da0a-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 270
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-87023309750eb69e70c2",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 254,
              "column": 7
            },
            {
              "title": "parties sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 80,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 241,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:286:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 286
                        },
                        "snippet": "\u001b[0m \u001b[90m 284 |\u001b[39m\n \u001b[90m 285 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from parties sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 286 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 287 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 288 |\u001b[39m\n \u001b[90m 289 |\u001b[39m   test(\u001b[32m'offices sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 286
                          },
                          "message": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m\n\n  284 |\n  285 |     console.log(`Tested ${result.tested} URLs from parties sitemap`);\n> 286 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  287 |   });\n  288 |\n  289 |   test('offices sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:286:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 290 URLs in /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /parties/sitemap-parties.xml: https://us.elect.info/parties/dts/, https://us.elect.info/parties/lmn/, https://us.elect.info/parties/n/, https://us.elect.info/parties/tra/, https://us.elect.info/parties/constitution/\n"
                        },
                        {
                          "text": "Testing page: /parties/dts/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/dts/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/lmn/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/lmn/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/n/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/n/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/tra/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/tra/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/constitution/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/constitution/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from parties sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:03.720Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 286
                      }
                    },
                    {
                      "workerIndex": 86,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 314,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:286:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 286
                        },
                        "snippet": "\u001b[0m \u001b[90m 284 |\u001b[39m\n \u001b[90m 285 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from parties sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 286 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 287 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 288 |\u001b[39m\n \u001b[90m 289 |\u001b[39m   test(\u001b[32m'offices sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 286
                          },
                          "message": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m\n\n  284 |\n  285 |     console.log(`Tested ${result.tested} URLs from parties sitemap`);\n> 286 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  287 |   });\n  288 |\n  289 |   test('offices sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:286:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 290 URLs in /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /parties/sitemap-parties.xml: https://us.elect.info/parties/dts/, https://us.elect.info/parties/lmn/, https://us.elect.info/parties/n/, https://us.elect.info/parties/tra/, https://us.elect.info/parties/constitution/\n"
                        },
                        {
                          "text": "Testing page: /parties/dts/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/dts/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/lmn/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/lmn/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/n/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/n/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/tra/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/tra/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/constitution/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/constitution/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from parties sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:04.923Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 286
                      }
                    },
                    {
                      "workerIndex": 91,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 225,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:286:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 286
                        },
                        "snippet": "\u001b[0m \u001b[90m 284 |\u001b[39m\n \u001b[90m 285 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from parties sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 286 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 287 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 288 |\u001b[39m\n \u001b[90m 289 |\u001b[39m   test(\u001b[32m'offices sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 286
                          },
                          "message": "Error: Errors: Expected 200 for /parties/dts/, got 503, Expected 200 for /parties/lmn/, got 503, Expected 200 for /parties/n/, got 503, Expected 200 for /parties/tra/, got 503, Expected 200 for /parties/constitution/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /parties/dts/, got 503\", \"Expected 200 for /parties/lmn/, got 503\", \"Expected 200 for /parties/n/, got 503\", \"Expected 200 for /parties/tra/, got 503\", \"Expected 200 for /parties/constitution/, got 503\"]\u001b[39m\n\n  284 |\n  285 |     console.log(`Tested ${result.tested} URLs from parties sitemap`);\n> 286 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  287 |   });\n  288 |\n  289 |   test('offices sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:286:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 290 URLs in /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /parties/sitemap-parties.xml: https://us.elect.info/parties/dts/, https://us.elect.info/parties/lmn/, https://us.elect.info/parties/n/, https://us.elect.info/parties/tra/, https://us.elect.info/parties/constitution/\n"
                        },
                        {
                          "text": "Testing page: /parties/dts/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/dts/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/lmn/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/lmn/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/n/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/n/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/tra/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/tra/, got 503\n"
                        },
                        {
                          "text": "Testing page: /parties/constitution/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /parties/constitution/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /parties/sitemap-parties.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from parties sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:06.560Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-56967-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 286
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-8947fc49728288b347b0",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 273,
              "column": 7
            },
            {
              "title": "offices sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 94,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 227,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:302:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 302
                        },
                        "snippet": "\u001b[0m \u001b[90m 300 |\u001b[39m\n \u001b[90m 301 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from offices sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 302 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 303 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 304 |\u001b[39m\n \u001b[90m 305 |\u001b[39m   test(\u001b[32m'districts sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 302
                          },
                          "message": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m\n\n  300 |\n  301 |     console.log(`Tested ${result.tested} URLs from offices sitemap`);\n> 302 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  303 |   });\n  304 |\n  305 |   test('districts sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:302:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 746 URLs in /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /offices/sitemap-offices.xml: https://us.elect.info/offices/house/mo-47/, https://us.elect.info/offices/house/tn-49/, https://us.elect.info/offices/house/tx-16/, https://us.elect.info/offices/house/ny-00/, https://us.elect.info/offices/house/ca-39/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/mo-47/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/mo-47/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tn-49/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/tn-49/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tx-16/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/tx-16/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/ny-00/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/ny-00/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/ca-39/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/ca-39/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from offices sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:07.904Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 302
                      }
                    },
                    {
                      "workerIndex": 99,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 371,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:302:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 302
                        },
                        "snippet": "\u001b[0m \u001b[90m 300 |\u001b[39m\n \u001b[90m 301 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from offices sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 302 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 303 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 304 |\u001b[39m\n \u001b[90m 305 |\u001b[39m   test(\u001b[32m'districts sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 302
                          },
                          "message": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m\n\n  300 |\n  301 |     console.log(`Tested ${result.tested} URLs from offices sitemap`);\n> 302 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  303 |   });\n  304 |\n  305 |   test('districts sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:302:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 746 URLs in /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /offices/sitemap-offices.xml: https://us.elect.info/offices/house/mo-47/, https://us.elect.info/offices/house/tn-49/, https://us.elect.info/offices/house/tx-16/, https://us.elect.info/offices/house/ny-00/, https://us.elect.info/offices/house/ca-39/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/mo-47/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/mo-47/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tn-49/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/tn-49/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tx-16/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/tx-16/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/ny-00/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/ny-00/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/ca-39/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/ca-39/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from offices sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:09.317Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 302
                      }
                    },
                    {
                      "workerIndex": 103,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 213,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:302:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 302
                        },
                        "snippet": "\u001b[0m \u001b[90m 300 |\u001b[39m\n \u001b[90m 301 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from offices sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 302 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 303 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 304 |\u001b[39m\n \u001b[90m 305 |\u001b[39m   test(\u001b[32m'districts sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 302
                          },
                          "message": "Error: Errors: Expected 200 for /offices/house/mo-47/, got 503, Expected 200 for /offices/house/tn-49/, got 503, Expected 200 for /offices/house/tx-16/, got 503, Expected 200 for /offices/house/ny-00/, got 503, Expected 200 for /offices/house/ca-39/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /offices/house/mo-47/, got 503\", \"Expected 200 for /offices/house/tn-49/, got 503\", \"Expected 200 for /offices/house/tx-16/, got 503\", \"Expected 200 for /offices/house/ny-00/, got 503\", \"Expected 200 for /offices/house/ca-39/, got 503\"]\u001b[39m\n\n  300 |\n  301 |     console.log(`Tested ${result.tested} URLs from offices sitemap`);\n> 302 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  303 |   });\n  304 |\n  305 |   test('districts sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:302:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 746 URLs in /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /offices/sitemap-offices.xml: https://us.elect.info/offices/house/mo-47/, https://us.elect.info/offices/house/tn-49/, https://us.elect.info/offices/house/tx-16/, https://us.elect.info/offices/house/ny-00/, https://us.elect.info/offices/house/ca-39/\n"
                        },
                        {
                          "text": "Testing page: /offices/house/mo-47/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/mo-47/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tn-49/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/tn-49/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/tx-16/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/tx-16/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/ny-00/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/ny-00/, got 503\n"
                        },
                        {
                          "text": "Testing page: /offices/house/ca-39/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /offices/house/ca-39/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /offices/sitemap-offices.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from offices sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:10.836Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-10822-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 302
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-8e94254e8554d3a49e2d",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 289,
              "column": 7
            },
            {
              "title": "districts sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 109,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 242,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:318:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 318
                        },
                        "snippet": "\u001b[0m \u001b[90m 316 |\u001b[39m\n \u001b[90m 317 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from districts sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 318 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 319 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 320 |\u001b[39m\n \u001b[90m 321 |\u001b[39m   test(\u001b[32m'states sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 318
                          },
                          "message": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m\n\n  316 |\n  317 |     console.log(`Tested ${result.tested} URLs from districts sitemap`);\n> 318 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  319 |   });\n  320 |\n  321 |   test('states sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:318:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 444 URLs in /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /districts/sitemap-districts.xml: https://us.elect.info/districts/mi-07/, https://us.elect.info/districts/or-02/, https://us.elect.info/districts/or-06/, https://us.elect.info/districts/tx-35/, https://us.elect.info/districts/pa-02/\n"
                        },
                        {
                          "text": "Testing page: /districts/mi-07/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/mi-07/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/or-02/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/or-02/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/or-06/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/or-06/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/tx-35/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/tx-35/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/pa-02/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/pa-02/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from districts sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:12.416Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 318
                      }
                    },
                    {
                      "workerIndex": 113,
                      "parallelIndex": 4,
                      "status": "failed",
                      "duration": 347,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:318:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 318
                        },
                        "snippet": "\u001b[0m \u001b[90m 316 |\u001b[39m\n \u001b[90m 317 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from districts sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 318 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 319 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 320 |\u001b[39m\n \u001b[90m 321 |\u001b[39m   test(\u001b[32m'states sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 318
                          },
                          "message": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m\n\n  316 |\n  317 |     console.log(`Tested ${result.tested} URLs from districts sitemap`);\n> 318 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  319 |   });\n  320 |\n  321 |   test('states sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:318:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 444 URLs in /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /districts/sitemap-districts.xml: https://us.elect.info/districts/mi-07/, https://us.elect.info/districts/or-02/, https://us.elect.info/districts/or-06/, https://us.elect.info/districts/tx-35/, https://us.elect.info/districts/pa-02/\n"
                        },
                        {
                          "text": "Testing page: /districts/mi-07/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/mi-07/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/or-02/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/or-02/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/or-06/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/or-06/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/tx-35/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/tx-35/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/pa-02/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/pa-02/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from districts sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:13.943Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 318
                      }
                    },
                    {
                      "workerIndex": 105,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 199,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:318:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 318
                        },
                        "snippet": "\u001b[0m \u001b[90m 316 |\u001b[39m\n \u001b[90m 317 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from districts sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 318 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 319 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 320 |\u001b[39m\n \u001b[90m 321 |\u001b[39m   test(\u001b[32m'states sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 318
                          },
                          "message": "Error: Errors: Expected 200 for /districts/mi-07/, got 503, Expected 200 for /districts/or-02/, got 503, Expected 200 for /districts/or-06/, got 503, Expected 200 for /districts/tx-35/, got 503, Expected 200 for /districts/pa-02/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /districts/mi-07/, got 503\", \"Expected 200 for /districts/or-02/, got 503\", \"Expected 200 for /districts/or-06/, got 503\", \"Expected 200 for /districts/tx-35/, got 503\", \"Expected 200 for /districts/pa-02/, got 503\"]\u001b[39m\n\n  316 |\n  317 |     console.log(`Tested ${result.tested} URLs from districts sitemap`);\n> 318 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  319 |   });\n  320 |\n  321 |   test('states sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:318:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 444 URLs in /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /districts/sitemap-districts.xml: https://us.elect.info/districts/mi-07/, https://us.elect.info/districts/or-02/, https://us.elect.info/districts/or-06/, https://us.elect.info/districts/tx-35/, https://us.elect.info/districts/pa-02/\n"
                        },
                        {
                          "text": "Testing page: /districts/mi-07/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/mi-07/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/or-02/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/or-02/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/or-06/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/or-06/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/tx-35/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/tx-35/, got 503\n"
                        },
                        {
                          "text": "Testing page: /districts/pa-02/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /districts/pa-02/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /districts/sitemap-districts.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from districts sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:14.933Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-d74b1-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 318
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-e977450acfe43ef5ce30",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 305,
              "column": 7
            },
            {
              "title": "states sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 119,
                      "parallelIndex": 2,
                      "status": "failed",
                      "duration": 220,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:334:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 334
                        },
                        "snippet": "\u001b[0m \u001b[90m 332 |\u001b[39m\n \u001b[90m 333 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from states sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 334 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 335 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 336 |\u001b[39m\n \u001b[90m 337 |\u001b[39m   test(\u001b[32m'elections sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 334
                          },
                          "message": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m\n\n  332 |\n  333 |     console.log(`Tested ${result.tested} URLs from states sitemap`);\n> 334 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  335 |   });\n  336 |\n  337 |   test('elections sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:334:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 52 URLs in /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /states/sitemap-states.xml: https://us.elect.info/states/puerto-rico/, https://us.elect.info/states/hawaii/, https://us.elect.info/states/louisiana/, https://us.elect.info/states/tennessee/, https://us.elect.info/states/iowa/\n"
                        },
                        {
                          "text": "Testing page: /states/puerto-rico/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/puerto-rico/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/hawaii/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/hawaii/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/louisiana/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/louisiana/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/tennessee/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/tennessee/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/iowa/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/iowa/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from states sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:15.690Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 334
                      }
                    },
                    {
                      "workerIndex": 9,
                      "parallelIndex": 9,
                      "status": "failed",
                      "duration": 303,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:334:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 334
                        },
                        "snippet": "\u001b[0m \u001b[90m 332 |\u001b[39m\n \u001b[90m 333 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from states sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 334 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 335 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 336 |\u001b[39m\n \u001b[90m 337 |\u001b[39m   test(\u001b[32m'elections sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 334
                          },
                          "message": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m\n\n  332 |\n  333 |     console.log(`Tested ${result.tested} URLs from states sitemap`);\n> 334 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  335 |   });\n  336 |\n  337 |   test('elections sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:334:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 52 URLs in /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /states/sitemap-states.xml: https://us.elect.info/states/puerto-rico/, https://us.elect.info/states/hawaii/, https://us.elect.info/states/louisiana/, https://us.elect.info/states/tennessee/, https://us.elect.info/states/iowa/\n"
                        },
                        {
                          "text": "Testing page: /states/puerto-rico/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/puerto-rico/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/hawaii/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/hawaii/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/louisiana/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/louisiana/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/tennessee/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/tennessee/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/iowa/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/iowa/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from states sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:16.033Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 334
                      }
                    },
                    {
                      "workerIndex": 121,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 445,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:334:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 334
                        },
                        "snippet": "\u001b[0m \u001b[90m 332 |\u001b[39m\n \u001b[90m 333 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from states sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 334 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 335 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 336 |\u001b[39m\n \u001b[90m 337 |\u001b[39m   test(\u001b[32m'elections sitemap - sample URLs resolve'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 334
                          },
                          "message": "Error: Errors: Expected 200 for /states/puerto-rico/, got 503, Expected 200 for /states/hawaii/, got 503, Expected 200 for /states/louisiana/, got 503, Expected 200 for /states/tennessee/, got 503, Expected 200 for /states/iowa/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /states/puerto-rico/, got 503\", \"Expected 200 for /states/hawaii/, got 503\", \"Expected 200 for /states/louisiana/, got 503\", \"Expected 200 for /states/tennessee/, got 503\", \"Expected 200 for /states/iowa/, got 503\"]\u001b[39m\n\n  332 |\n  333 |     console.log(`Tested ${result.tested} URLs from states sitemap`);\n> 334 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  335 |   });\n  336 |\n  337 |   test('elections sitemap - sample URLs resolve', async ({ page }) => {\n    at /app/tests/ui/sitemap.spec.ts:334:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 52 URLs in /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /states/sitemap-states.xml: https://us.elect.info/states/puerto-rico/, https://us.elect.info/states/hawaii/, https://us.elect.info/states/louisiana/, https://us.elect.info/states/tennessee/, https://us.elect.info/states/iowa/\n"
                        },
                        {
                          "text": "Testing page: /states/puerto-rico/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/puerto-rico/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/hawaii/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/hawaii/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/louisiana/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/louisiana/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/tennessee/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/tennessee/, got 503\n"
                        },
                        {
                          "text": "Testing page: /states/iowa/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /states/iowa/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /states/sitemap-states.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from states sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:16.882Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-e7685-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 334
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-2974a6e40c0ee82198bf",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 321,
              "column": 7
            },
            {
              "title": "elections sitemap - sample URLs resolve",
              "ok": false,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 125,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 218,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:350:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 350
                        },
                        "snippet": "\u001b[0m \u001b[90m 348 |\u001b[39m\n \u001b[90m 349 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from elections sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 350 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 351 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 352 |\u001b[39m\n \u001b[90m 353 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 350
                          },
                          "message": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m\n\n  348 |\n  349 |     console.log(`Tested ${result.tested} URLs from elections sitemap`);\n> 350 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  351 |   });\n  352 |\n  353 | });\n    at /app/tests/ui/sitemap.spec.ts:350:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 25 URLs in /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /elections/sitemap-elections.xml: https://us.elect.info/elections/2006/, https://us.elect.info/elections/1984/, https://us.elect.info/elections/2014/, https://us.elect.info/elections/1996/, https://us.elect.info/elections/1988/\n"
                        },
                        {
                          "text": "Testing page: /elections/2006/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/2006/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1984/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1984/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/2014/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/2014/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1996/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1996/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1988/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1988/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from elections sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:17.942Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 350
                      }
                    },
                    {
                      "workerIndex": 127,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 401,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:350:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 350
                        },
                        "snippet": "\u001b[0m \u001b[90m 348 |\u001b[39m\n \u001b[90m 349 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from elections sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 350 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 351 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 352 |\u001b[39m\n \u001b[90m 353 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 350
                          },
                          "message": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m\n\n  348 |\n  349 |     console.log(`Tested ${result.tested} URLs from elections sitemap`);\n> 350 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  351 |   });\n  352 |\n  353 | });\n    at /app/tests/ui/sitemap.spec.ts:350:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 25 URLs in /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /elections/sitemap-elections.xml: https://us.elect.info/elections/2006/, https://us.elect.info/elections/1984/, https://us.elect.info/elections/2014/, https://us.elect.info/elections/1996/, https://us.elect.info/elections/1988/\n"
                        },
                        {
                          "text": "Testing page: /elections/2006/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/2006/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1984/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1984/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/2014/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/2014/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1996/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1996/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1988/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1988/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from elections sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 1,
                      "startTime": "2026-10-16T18:52:18.730Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui-retry1/test-failed-1.png"
                        },
                        {
                          "name": "video",
                          "contentType": "video/webm",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui-retry1/video.webm"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui-retry1/error-context.md"
                        },
                        {
                          "name": "trace",
                          "contentType": "application/zip",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui-retry1/trace.zip"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 350
                      }
                    },
                    {
                      "workerIndex": 129,
                      "parallelIndex": 1,
                      "status": "failed",
                      "duration": 222,
                      "error": {
                        "message": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m",
                        "stack": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m\n    at /app/tests/ui/sitemap.spec.ts:350:66",
                        "location": {
                          "file": "/app/tests/ui/sitemap.spec.ts",
                          "column": 66,
                          "line": 350
                        },
                        "snippet": "\u001b[0m \u001b[90m 348 |\u001b[39m\n \u001b[90m 349 |\u001b[39m     console\u001b[33m.\u001b[39mlog(\u001b[32m`Tested ${result.tested} URLs from elections sitemap`\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 350 |\u001b[39m     expect(result\u001b[33m.\u001b[39merrors\u001b[33m,\u001b[39m \u001b[32m`Errors: ${result.errors.join(', ')}`\u001b[39m)\u001b[33m.\u001b[39mtoHaveLength(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m     |\u001b[39m                                                                  \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 351 |\u001b[39m   })\u001b[33m;\u001b[39m\n \u001b[90m 352 |\u001b[39m\n \u001b[90m 353 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
                      },
                      "errors": [
                        {
                          "location": {
                            "file": "/app/tests/ui/sitemap.spec.ts",
                            "column": 66,
                            "line": 350
                          },
                          "message": "Error: Errors: Expected 200 for /elections/2006/, got 503, Expected 200 for /elections/1984/, got 503, Expected 200 for /elections/2014/, got 503, Expected 200 for /elections/1996/, got 503, Expected 200 for /elections/1988/, got 503\n\n\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveLength\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected length: \u001b[32m0\u001b[39m\nReceived length: \u001b[31m5\u001b[39m\nReceived array:  \u001b[31m[\"Expected 200 for /elections/2006/, got 503\", \"Expected 200 for /elections/1984/, got 503\", \"Expected 200 for /elections/2014/, got 503\", \"Expected 200 for /elections/1996/, got 503\", \"Expected 200 for /elections/1988/, got 503\"]\u001b[39m\n\n  348 |\n  349 |     console.log(`Tested ${result.tested} URLs from elections sitemap`);\n> 350 |     expect(result.errors, `Errors: ${result.errors.join(', ')}`).toHaveLength(0);\n      |                                                                  ^\n  351 |   });\n  352 |\n  353 | });\n    at /app/tests/ui/sitemap.spec.ts:350:66"
                        }
                      ],
                      "stdout": [
                        {
                          "text": "Found 25 URLs in /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "[sample seed=e23098f] /elections/sitemap-elections.xml: https://us.elect.info/elections/2006/, https://us.elect.info/elections/1984/, https://us.elect.info/elections/2014/, https://us.elect.info/elections/1996/, https://us.elect.info/elections/1988/\n"
                        },
                        {
                          "text": "Testing page: /elections/2006/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/2006/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1984/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1984/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/2014/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/2014/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1996/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1996/, got 503\n"
                        },
                        {
                          "text": "Testing page: /elections/1988/\n"
                        },
                        {
                          "text": "  ERROR: Expected 200 for /elections/1988/, got 503\n"
                        },
                        {
                          "text": "Tested 5 URLs from /elections/sitemap-elections.xml\n"
                        },
                        {
                          "text": "Tested 5 URLs from elections sitemap\n"
                        }
                      ],
                      "stderr": [],
                      "retry": 2,
                      "startTime": "2026-10-16T18:52:19.760Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui-retry2/test-failed-1.png"
                        },
                        {
                          "name": "error-context",
                          "contentType": "text/markdown",
                          "path": "/workspace/artifacts/e23098f/us/test-output/sitemap-sitemap-URL-valida-cf8a5-temap---sample-URLs-resolve-ui-retry2/error-context.md"
                        }
                      ],
                      "errorLocation": {
                        "file": "/app/tests/ui/sitemap.spec.ts",
                        "column": 66,
                        "line": 350
                      }
                    }
                  ],
                  "status": "unexpected"
                }
              ],
              "id": "445aeafbdc2b94cf9bb3-869ad0437e25b2768dea",
              "file": "tests/ui/sitemap.spec.ts",
              "line": 337,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/us.spec.ts",
      "file": "tests/ui/us.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "us.elect.info",
          "file": "tests/ui/us.spec.ts",
          "line": 3,
          "column": 6,
          "specs": [
            {
              "title": "homepage loads with title",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 219,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:51.958Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/us-us-elect-info-homepage-loads-with-title-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-8afeb95d04c94adeed96",
              "file": "tests/ui/us.spec.ts",
              "line": 4,
              "column": 7
            },
            {
              "title": "entity stats display",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 172,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.949Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/us-us-elect-info-entity-stats-display-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-49e351c56a50ed35776c",
              "file": "tests/ui/us.spec.ts",
              "line": 10,
              "column": 7
            },
            {
              "title": "CSS assets load",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 107,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.138Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/us-us-elect-info-CSS-assets-load-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-9f6402d7bf0b7a821851",
              "file": "tests/ui/us.spec.ts",
              "line": 16,
              "column": 7
            },
            {
              "title": "JS assets load",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 162,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.259Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/us-us-elect-info-JS-assets-load-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-6e13cf9f04841582af4e",
              "file": "tests/ui/us.spec.ts",
              "line": 21,
              "column": 7
            },
            {
              "title": "404 page works",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 16,
                      "parallelIndex": 17,
                      "status": "passed",
                      "duration": 95,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.433Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/us-us-elect-info-404-page-works-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "2d63ce8979ebe7723300-f161db786bfcba883987",
              "file": "tests/ui/us.spec.ts",
              "line": 27,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/visitor-token.spec.ts",
      "file": "tests/ui/visitor-token.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [
        {
          "title": "GET /api/token is never an error, with or without the gate",
          "ok": true,
          "tags": [],
          "tests": [
            {
              "timeout": 30000,
              "annotations": [],
              "expectedStatus": "passed",
              "projectId": "ui",
              "projectName": "ui",
              "results": [
                {
                  "workerIndex": 17,
                  "parallelIndex": 18,
                  "status": "passed",
                  "duration": 29,
                  "errors": [],
                  "stdout": [],
                  "stderr": [],
                  "retry": 0,
                  "startTime": "2026-10-16T18:51:51.973Z",
                  "annotations": [],
                  "attachments": []
                }
              ],
              "status": "expected"
            }
          ],
          "id": "66d11097bc5ff2c625f4-ba2e689c22ca1eb58a86",
          "file": "tests/ui/visitor-token.spec.ts",
          "line": 30,
          "column": 5
        }
      ],
      "suites": [
        {
          "title": "visitor-token gate",
          "file": "tests/ui/visitor-token.spec.ts",
          "line": 41,
          "column": 6,
          "specs": [
            {
              "title": "GET /api/token sets an HttpOnly token and a readable expiry",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 45,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.047Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 45,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-6a345a67524e2f99f69c",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 42,
              "column": 7
            },
            {
              "title": "without a token, /api/graphql answers 401",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 58,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 9,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.072Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 58,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-f396d27256170349746e",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 57,
              "column": 7
            },
            {
              "title": "an anon token runs persisted documents and nothing else",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 70,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 7,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.091Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 70,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-fb37317a2cef824e3dad",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 69,
              "column": 7
            }
          ]
        },
        {
          "title": "donor records are premium",
          "file": "tests/ui/visitor-token.spec.ts",
          "line": 98,
          "column": 6,
          "specs": [
            {
              "title": "an anonymous visitor gets the premium notice on Individual Donors",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 100,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 8,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.111Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 100,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-c8ffc6d48edd62fa84f1",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 103,
              "column": 7
            },
            {
              "title": "an anonymous visitor sees employer totals but not donor names",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "this target has no visitor-token gate",
                      "location": {
                        "file": "/app/tests/ui/visitor-token.spec.ts",
                        "line": 100,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 17,
                      "parallelIndex": 18,
                      "status": "skipped",
                      "duration": 4,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.135Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "this target has no visitor-token gate",
                          "location": {
                            "file": "/app/tests/ui/visitor-token.spec.ts",
                            "line": 100,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "66d11097bc5ff2c625f4-70bd87774f0fc06f5206",
              "file": "tests/ui/visitor-token.spec.ts",
              "line": 109,
              "column": 7
            }
          ]
        }
      ]
    },
    {
      "title": "tests/ui/voters.spec.ts",
      "file": "tests/ui/voters.spec.ts",
      "column": 0,
      "line": 0,
      "specs": [],
      "suites": [
        {
          "title": "voters (premium)",
          "file": "tests/ui/voters.spec.ts",
          "line": 25,
          "column": 6,
          "specs": [
            {
              "title": "the public /api/graphql refuses voter queries",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 77,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.012Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-5353dc9ff6280b8b8ce8",
              "file": "tests/ui/voters.spec.ts",
              "line": 30,
              "column": 7
            },
            {
              "title": "a premium visitor token reads voters through /api/graphql",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [
                    {
                      "type": "skip",
                      "description": "needs the target's visitor-token key (EI_VT_KEY)",
                      "location": {
                        "file": "/app/tests/ui/voters.spec.ts",
                        "line": 56,
                        "column": 10
                      }
                    }
                  ],
                  "expectedStatus": "skipped",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "skipped",
                      "duration": 9,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.146Z",
                      "annotations": [
                        {
                          "type": "skip",
                          "description": "needs the target's visitor-token key (EI_VT_KEY)",
                          "location": {
                            "file": "/app/tests/ui/voters.spec.ts",
                            "line": 56,
                            "column": 10
                          }
                        }
                      ],
                      "attachments": []
                    }
                  ],
                  "status": "skipped"
                }
              ],
              "id": "6970ccac81a50c81e377-7fde10790fe436f2ce41",
              "file": "tests/ui/voters.spec.ts",
              "line": 55,
              "column": 7
            },
            {
              "title": "/voters/api/graphql answers voter queries and only POST",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 490,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.171Z",
                      "annotations": [],
                      "attachments": []
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-804985811ed788cbb4b3",
              "file": "tests/ui/voters.spec.ts",
              "line": 63,
              "column": 7
            },
            {
              "title": "browse lists the most active voters and links to detail pages",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 1189,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:52.670Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/voters-voters-premium-brow-b8f67-s-and-links-to-detail-pages-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-0c1aedbfd096b779cf2a",
              "file": "tests/ui/voters.spec.ts",
              "line": 74,
              "column": 7
            },
            {
              "title": "search needs every term: name plus city",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 3243,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:53.934Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/voters-voters-premium-search-needs-every-term-name-plus-city-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-d68c8209b5444194b927",
              "file": "tests/ui/voters.spec.ts",
              "line": 91,
              "column": 7
            },
            {
              "title": "state filter narrows the list and scopes the county and district dropdowns",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 1877,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:57.196Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/voters-voters-premium-stat-66ee5-unty-and-district-dropdowns-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-715d172cd99b39041bec",
              "file": "tests/ui/voters.spec.ts",
              "line": 100,
              "column": 7
            },
            {
              "title": "filters combine, count matches and survive a reload",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 279,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.093Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/voters-voters-premium-filt-1ca12-atches-and-survive-a-reload-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-135d5a7d039193b89e35",
              "file": "tests/ui/voters.spec.ts",
              "line": 111,
              "column": 7
            },
            {
              "title": "race and Civitech score filters (persuadable, high-turnout Latinx voters in Miami-Dade)",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 1584,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:51:59.389Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/voters-voters-premium-race-5358f-atinx-voters-in-Miami-Dade--ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-8448f6ea1dd523d04da6",
              "file": "tests/ui/voters.spec.ts",
              "line": 126,
              "column": 7
            },
            {
              "title": "an unknown voter id renders Not Found",
              "ok": true,
              "tags": [],
              "tests": [
                {
                  "timeout": 30000,
                  "annotations": [],
                  "expectedStatus": "passed",
                  "projectId": "ui",
                  "projectName": "ui",
                  "results": [
                    {
                      "workerIndex": 18,
                      "parallelIndex": 19,
                      "status": "passed",
                      "duration": 127,
                      "errors": [],
                      "stdout": [],
                      "stderr": [],
                      "retry": 0,
                      "startTime": "2026-10-16T18:52:00.986Z",
                      "annotations": [],
                      "attachments": [
                        {
                          "name": "screenshot",
                          "contentType": "image/png",
                          "path": "/workspace/artifacts/e23098f/us/test-output/voters-voters-premium-an-unknown-voter-id-renders-Not-Found-ui/test-finished-1.png"
                        }
                      ]
                    }
                  ],
                  "status": "expected"
                }
              ],
              "id": "6970ccac81a50c81e377-e0441edf222b4f45ecb0",
              "file": "tests/ui/voters.spec.ts",
              "line": 134,
              "column": 7
            }
          ]
        }
      ]
    }
  ],
  "errors": [],
  "stats": {
    "startTime": "2026-10-16T18:51:50.791Z",
    "duration": 382141.168,
    "expected": 150,
    "skipped": 23,
    "unexpected": 59,
    "flaky": 1
  }
}