Skip to content

chore(deps): bump the non-critical group across 1 directory with 20 updates #427

chore(deps): bump the non-critical group across 1 directory with 20 updates

chore(deps): bump the non-critical group across 1 directory with 20 updates #427

Triggered via pull request August 16, 2026 05:47
Status Failure
Total duration 18m 13s
Artifacts

ci.yml

on: pull_request
Rust fmt
13s
Rust fmt
Rust clippy
1m 4s
Rust clippy
Rust tests
16m 12s
Rust tests
Backend typecheck
57s
Backend typecheck
API typecheck
53s
API typecheck
Frontend typecheck
52s
Frontend typecheck
Backend lint
55s
Backend lint
Backend tests
2m 0s
Backend tests
API lint
50s
API lint
API tests
1m 2s
API tests
Frontend lint
47s
Frontend lint
Frontend coverage (vitest >= 95%)
1m 31s
Frontend coverage (vitest >= 95%)
Mobile tests + coverage (≥ 70%)
51s
Mobile tests + coverage (≥ 70%)
SDK browser bundle size (warn > 100 KB gzip)
56s
SDK browser bundle size (warn > 100 KB gzip)
Helm chart lint
7s
Helm chart lint
SDK contract-surface coverage
7s
SDK contract-surface coverage
Fit to window
Zoom out
Zoom in

Annotations

49 errors and 18 warnings
Rust fmt
Process completed with exit code 1.
Frontend lint
Process completed with exit code 1.
Frontend lint: frontend/src/components/WalletConnection.tsx#L129
Definition for rule 'react-hooks/exhaustive-deps' was not found
Frontend lint: frontend/src/components/AnchorSelector.tsx#L85
Definition for rule 'react-hooks/exhaustive-deps' was not found
src/__tests__/integration.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/graphql.test.ts: api/src/middleware/auth.ts#L24
Error: Cannot find package 'jsonwebtoken' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/middleware/auth.ts' ❯ src/middleware/auth.ts:24:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url jsonwebtoken (resolved id: jsonwebtoken) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/__tests__/websocket.test.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/graphql-security.test.ts: api/src/middleware/auth.ts#L24
Error: Cannot find package 'jsonwebtoken' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/middleware/auth.ts' ❯ src/middleware/auth.ts:24:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Caused by: Error: Failed to load url jsonwebtoken (resolved id: jsonwebtoken) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/__tests__/websocket.test.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/governance-lifecycle.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/config.test.ts > CurrencyConfigLoader > load() > should validate currency code format: api/src/__tests__/config.test.ts#L129
AssertionError: expected [Function] to throw error including 'Currency code must contain only upper…' but got 'Currency configuration error: Configu…' Expected: "Currency code must contain only uppercase letters" Received: "Currency configuration error: Configuration validation failed: Currency code must conform to ISO 4217 format (exactly 3 uppercase letters)" ❯ src/__tests__/config.test.ts:129:35
src/__tests__/auth.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/auth-security.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/anchors.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/agents.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
Unhandled error: api/src/services/sep24.ts#L134
Error: SEP-24 poll timeout after 500ms for tx sep24-tx-001 ❯ Sep24Client.pollUntilComplete src/services/sep24.ts:134:11 This error originated in "src/__tests__/sep24.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. The latest test that might've caused the error is "throws timeout when polling exceeds deadline". It might mean one of the following: - The error was thrown, while Vitest was running this test. - If the error occurred after the test had been completed, this was the last documented test before it was thrown.
src/__tests__/api-key-rate-limit.test.ts > API key rate limiting > includes X-RateLimit-* headers in responses: backend/src/api.ts#L95
TypeError: fxRateCache.setMetricsObserver is not a function ❯ src/api.ts:95:13 ❯ src/__tests__/api-key-rate-limit.test.ts:129:17
src/__tests__/api-key-management.test.ts > API Key Management > API Key Lifecycle > should complete full key lifecycle: backend/src/__tests__/api-key-management.test.ts#L191
AssertionError: expected 400 to be 201 // Object.is equality - Expected + Received - 201 + 400 ❯ src/__tests__/api-key-management.test.ts:191:37
src/__tests__/api-key-management.test.ts > API Key Management > DELETE /api/developers/keys/:key_id > should only allow user to revoke their own keys: backend/src/__tests__/api-key-management.test.ts#L179
AssertionError: expected 500 to be 403 // Object.is equality - Expected + Received - 403 + 500 ❯ src/__tests__/api-key-management.test.ts:179:37
src/__tests__/api-key-management.test.ts > API Key Management > DELETE /api/developers/keys/:key_id > should return 404 for non-existent key: backend/src/__tests__/api-key-management.test.ts#L158
AssertionError: expected 500 to be 404 // Object.is equality - Expected + Received - 404 + 500 ❯ src/__tests__/api-key-management.test.ts:158:31
src/__tests__/api-key-management.test.ts > API Key Management > DELETE /api/developers/keys/:key_id > should revoke an API key: backend/src/__tests__/api-key-management.test.ts#L150
AssertionError: expected 500 to be 204 // Object.is equality - Expected + Received - 204 + 500 ❯ src/__tests__/api-key-management.test.ts:150:37
src/__tests__/api-key-management.test.ts > API Key Management > GET /api/developers/keys > should not return secrets in list response: backend/src/__tests__/api-key-management.test.ts#L122
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ src/__tests__/api-key-management.test.ts:122:31
src/__tests__/api-key-management.test.ts > API Key Management > GET /api/developers/keys > should list active API keys: backend/src/__tests__/api-key-management.test.ts#L107
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ src/__tests__/api-key-management.test.ts:107:31
src/__tests__/api-key-management.test.ts > API Key Management > POST /api/developers/keys > should hash the key at rest: backend/src/__tests__/api-key-management.test.ts#L55
AssertionError: expected 400 to be 201 // Object.is equality - Expected + Received - 201 + 400 ❯ src/__tests__/api-key-management.test.ts:55:31
src/__tests__/api-key-management.test.ts > API Key Management > POST /api/developers/keys > should create an API key: backend/src/__tests__/api-key-management.test.ts#L39
AssertionError: expected 400 to be 201 // Object.is equality - Expected + Received - 201 + 400 ❯ src/__tests__/api-key-management.test.ts:39:31
src/__tests__/agent-kyc.test.ts: backend/src/api.ts#L95
TypeError: fxRateCache.setMetricsObserver is not a function ❯ src/api.ts:95:13 ❯ src/__tests__/agent-kyc.test.ts:94:1
Mobile tests + coverage (≥ 70%)
Process completed with exit code 1.
Backend typecheck
Process completed with exit code 2.
Backend typecheck
Cannot find module '@swiftremit/sdk' or its corresponding type declarations.
Rust clippy
Process completed with exit code 101.
Backend lint: backend/src/middleware/api-key-store.ts#L253
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L236
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L224
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L208
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L170
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L135
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L147
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L140
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L132
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L116
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > jumps to last with End key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L302
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-ch50rtset-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-ch50rtset" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-ch50rtset-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-ch50rtset-label" class="anchor-dropdown-menu" id="anchor-listbox-ch50rtset" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-ch50rtset-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-ch50rtset-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > jumps to first with Home key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L276
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-rahirlc9a-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-rahirlc9a" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-rahirlc9a-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-rahirlc9a-label" class="anchor-dropdown-menu" id="anchor-listbox-rahirlc9a" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-rahirlc9a-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-rahirlc9a-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > returns focus to trigger after Escape: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L257
Error: expect(element).toHaveFocus() Expected element with focus: <button aria-controls="anchor-listbox-71a77entq" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-71a77entq-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> Received element with focus: <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-71a77entq-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-71a77entq" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-71a77entq-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-71a77entq-label" class="anchor-dropdown-menu" id="anchor-listbox-71a77entq" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-71a77entq-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span>
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > closes with Escape key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L239
Error: expect(element).not.toBeInTheDocument() expected document not to contain element, found <div aria-labelledby="anchor-listbox-td6mwp9z5-label" class="anchor-dropdown-menu" id="anchor-listbox-td6mwp9z5" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-td6mwp9z5-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-td6mwp9z5-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor Two </div> <div class="anchor-option-domain" > anchor2.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $20.00 - $20,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 2-3 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="2" id="anchor-listbox-td6mwp9z5-option-2" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor Three <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor3.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.2% </span> </div> <div class="detail-row" > <span class="detail-label" >
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > selects with Enter key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L221
AssertionError: expected "spy" to be called with arguments: [ { id: 'anchor-2', …(10) } ] Number of calls: 0 Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-wqfzh3aeb-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-wqfzh3aeb" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-wqfzh3aeb-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-wqfzh3aeb-label" class="anchor-dropdown-menu" id="anchor-listbox-wqfzh3aeb" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-wqfzh3aeb-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-wqfzh3aeb-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div cla
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > navigates up with ArrowUp: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L194
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-ptfm6t6e0-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-ptfm6t6e0" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-ptfm6t6e0-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-ptfm6t6e0-label" class="anchor-dropdown-menu" id="anchor-listbox-ptfm6t6e0" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-ptfm6t6e0-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-ptfm6t6e0-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > navigates down with ArrowDown: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L174
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-nfgp9yl5s-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-nfgp9yl5s" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-nfgp9yl5s-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-nfgp9yl5s-label" class="anchor-dropdown-menu" id="anchor-listbox-nfgp9yl5s" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-nfgp9yl5s-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-nfgp9yl5s-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelector.test.tsx > AnchorSelector > accessibility > has no a11y violations when dropdown is open: frontend/src/components/__tests__/AnchorSelector.test.tsx#L267
Error: expect(received).toHaveNoViolations(expected) Expected the HTML found at $('#anchor-listbox-0nfjgytuv') to have no violations: <div class="anchor-dropdown-menu" role="listbox" id="anchor-listbox-0nfjgytuv" aria-labelledby="anchor-listbox-0nfjgytuv-label" tabindex="-1"> Received: "Certain ARIA roles must contain particular children (aria-required-children)" Fix any of the following: Element has children which are not allowed: input[aria-label] You can find more information on this issue here: https://dequeuniversity.com/rules/axe/4.9/aria-required-children?application=axeAPI ❯ src/components/__tests__/AnchorSelector.test.tsx:267:23
src/components/__tests__/AdminTwoFactorAuth.test.tsx > Issue #897: 2FA Settings Page for Admin Users > should allow enabling/disabling 2FA from settings: frontend/src/components/__tests__/AdminTwoFactorAuth.test.tsx#L381
AssertionError: expected true to be false // Object.is equality - Expected + Received - false + true ❯ src/components/__tests__/AdminTwoFactorAuth.test.tsx:381:28
Unhandled error: frontend/src/utils/a11y.tsx#L17
TypeError: mainContent.scrollIntoView is not a function ❯ onClick src/utils/a11y.tsx:17:23 ❯ HTMLUnknownElement.callCallback node_modules/react-dom/cjs/react-dom.development.js:4164:14 ❯ HTMLUnknownElement.callTheUserObjectsOperation ../node_modules/jsdom/lib/generated/idl/EventListener.js:26:30 ❯ innerInvokeEventListeners ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:360:16 ❯ invokeEventListeners ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:296:3 ❯ HTMLUnknownElementImpl._dispatch ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:243:9 ❯ HTMLUnknownElementImpl.dispatchEvent ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:114:17 ❯ HTMLUnknownElement.dispatchEvent ../node_modules/jsdom/lib/generated/idl/EventTarget.js:241:34 ❯ Object.invokeGuardedCallbackDev node_modules/react-dom/cjs/react-dom.development.js:4213:16 ❯ invokeGuardedCallback node_modules/react-dom/cjs/react-dom.development.js:4277:31 This error originated in "src/utils/__tests__/a11y.test.tsx" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. The latest test that might've caused the error is "should focus main content on click". It might mean one of the following: - The error was thrown, while Vitest was running this test. - If the error occurred after the test had been completed, this was the last documented test before it was thrown.
CI
Process completed with exit code 1.
Rust fmt
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
SDK contract-surface coverage
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Helm chart lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, azure/setup-helm@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
API typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
SDK browser bundle size (warn > 100 KB gzip)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
SDK browser bundle size (warn > 100 KB gzip)
Browser bundle not found at dist/browser/index.mjs
API tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Mobile tests + coverage (≥ 70%)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Mobile tests + coverage (≥ 70%)
No files were found with the provided path: mobile/test-results/. No artifacts will be uploaded.
API lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Rust clippy
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend coverage (vitest >= 95%)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Rust tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/