Skip to content

[#850] Fix EventSource reconnect storm/leak in useStreamEvents #819

[#850] Fix EventSource reconnect storm/leak in useStreamEvents

[#850] Fix EventSource reconnect storm/leak in useStreamEvents #819

Triggered via pull request July 30, 2026 07:19
Status Failure
Total duration 1m 32s
Artifacts

pr-test-gate.yml

on: pull_request
Contracts cargo test
1m 12s
Contracts cargo test
Backend npm test
1m 21s
Backend npm test
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 2 warnings
tests/integration/stream-lifecycle.test.ts > Stream Lifecycle Integration Tests > Indexer → stream_resumed: isPaused = false, accrual resumes > sets isPaused=false and accrual resumes correctly: backend/src/workers/soroban-event-worker.ts#L1021
TypeError: Cannot mix BigInt and other types, use explicit conversions ❯ src/workers/soroban-event-worker.ts:1021:36 ❯ Proxy._transactionWithCallback src/generated/prisma/runtime/client.js:103:4800 ❯ SorobanEventWorker.handleStreamResumed src/workers/soroban-event-worker.ts:1011:5 ❯ SorobanEventWorker.processEvent src/workers/soroban-event-worker.ts:309:9 ❯ tests/integration/stream-lifecycle.test.ts:404:7
tests/integration/stream-lifecycle.test.ts > Stream Lifecycle Integration Tests > Indexer → stream_paused: isPaused = true, claimable stops growing > sets isPaused=true and stops accrual: backend/tests/integration/stream-lifecycle.test.ts#L358
Error: expected 200 "OK", got 500 "Internal Server Error" ❯ tests/integration/stream-lifecycle.test.ts:358:10 ❯ Test._assertStatus ../node_modules/supertest/lib/test.js:309:14 ❯ ../node_modules/supertest/lib/test.js:365:13 ❯ Test._assertFunction ../node_modules/supertest/lib/test.js:342:13 ❯ Test.assert ../node_modules/supertest/lib/test.js:195:23 ❯ localAssert ../node_modules/supertest/lib/test.js:138:14 ❯ Server.<anonymous> ../node_modules/supertest/lib/test.js:152:11
tests/integration/stream-lifecycle.test.ts > Stream Lifecycle Integration Tests > Indexer → stream_topped_up: depositedAmount updated > updates depositedAmount in DB and API reflects the change: backend/tests/integration/stream-lifecycle.test.ts#L309
Error: expected 200 "OK", got 500 "Internal Server Error" ❯ tests/integration/stream-lifecycle.test.ts:309:10 ❯ Test._assertStatus ../node_modules/supertest/lib/test.js:309:14 ❯ ../node_modules/supertest/lib/test.js:365:13 ❯ Test._assertFunction ../node_modules/supertest/lib/test.js:342:13 ❯ Test.assert ../node_modules/supertest/lib/test.js:195:23 ❯ localAssert ../node_modules/supertest/lib/test.js:138:14 ❯ Server.<anonymous> ../node_modules/supertest/lib/test.js:152:11
tests/integration/stream-lifecycle.test.ts > Stream Lifecycle Integration Tests > Indexer → stream_created: stream appears in GET /v1/streams/:id > processes stream_created event and makes stream available via API: backend/src/services/sse.service.ts#L133
TypeError: Do not know how to serialize a BigInt ❯ SSEService.broadcast src/services/sse.service.ts:133:52 ❯ SSEService._localBroadcastToStream src/services/sse.service.ts:166:10 ❯ SSEService.broadcastToStream src/services/sse.service.ts:146:12 ❯ SorobanEventWorker.handleStreamCreated src/workers/soroban-event-worker.ts:551:16 ❯ SorobanEventWorker.processEvent src/workers/soroban-event-worker.ts:297:9 ❯ tests/integration/stream-lifecycle.test.ts:241:7
tests/integration/stream-actions.test.ts > stream action routes > POST /v1/streams/:streamId/withdraw withdraws the claimable amount for the recipient: backend/tests/integration/stream-actions.test.ts#L209
AssertionError: expected 400 to be 200 // Object.is equality - Expected + Received - 200 + 400 ❯ tests/integration/stream-actions.test.ts:209:29
tests/integration/admin-metrics.test.ts > GET /v1/admin/metrics > caches the response for 60 seconds: backend/tests/integration/admin-metrics.test.ts#L167
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ tests/integration/admin-metrics.test.ts:167:26
tests/integration/admin-metrics.test.ts > GET /v1/admin/metrics > preserves precision for very large i128 withdrawn sums: backend/tests/integration/admin-metrics.test.ts#L159
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ tests/integration/admin-metrics.test.ts:159:24
tests/integration/admin-metrics.test.ts > GET /v1/admin/metrics > returns the snake_case summary required by the public contract: backend/tests/integration/admin-metrics.test.ts#L137
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ tests/integration/admin-metrics.test.ts:137:24
tests/soroban-event-worker.test.ts > SorobanEventWorker > Event processing idempotency > should not double-apply depositedAmount/endTime when a stream_topped_up event is re-processed: backend/tests/soroban-event-worker.test.ts#L578
AssertionError: expected 1700000120n to be 1700000120 // Object.is equality - Expected: 1700000120 + Received: 1700000120n ❯ tests/soroban-event-worker.test.ts:578:31
tests/indexer-state.test.ts: backend/src/lib/indexer-state.ts#L1
Error: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock ❯ src/lib/indexer-state.ts:1:1 Caused by: Caused by: ReferenceError: Cannot access 'mockFindUnique' before initialization ❯ tests/indexer-state.test.ts:9:19 ❯ src/lib/indexer-state.ts:1:1
Contracts cargo test
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/
Backend npm test
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/