Skip to content

feat(module-state): add configurable pull scheduling with watchdog fallback #15161

feat(module-state): add configurable pull scheduling with watchdog fallback

feat(module-state): add configurable pull scheduling with watchdog fallback #15161

Triggered via pull request August 6, 2026 11:41
Status Failure
Total duration 3m 30s
Artifacts 1

pr.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

8 errors and 2 warnings
Check Code
Process completed with exit code 1.
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull watchdog > cancels a hung pull replication and releases it for the next scheduled pull: packages/modules/state/src/__tests__/PouchDbSyncStorage.test.ts#L16
Error: Hook timed out in 10000ms. If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout". ❯ src/__tests__/PouchDbSyncStorage.test.ts:16:3
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull watchdog > cancels a hung pull replication and releases it for the next scheduled pull: packages/modules/state/src/storage/PouchDbSyncStorage.ts#L270
UnsubscriptionError: 1 errors occurred during unsubscription: 1) TypeError: replication.removeListener is not a function ❯ _super ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/createErrorClass.ts:13:21 ❯ new UnsubscriptionErrorImpl ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts:22:6 ❯ SafeSubscriber.Subscription.unsubscribe ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Subscription.ts:93:14 ❯ SafeSubscriber.Subscriber.unsubscribe ../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Subscriber.ts:107:23 ❯ finish src/storage/PouchDbSyncStorage.ts:270:22 ❯ src/storage/PouchDbSyncStorage.ts:289:9 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errors: [ { stack: 'TypeError: replication.removeListener is not a function\n at /home/runner/work/fusion-framework/fusion-framework/packages/modules/state/src/storage/observe-pouch-db-replicate.ts:79:19\n at execFinalizer (/home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscription.js:172:9)\n at SafeSubscriber.Subscription.unsubscribe (/home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscription.js:89:29)\n at SafeSubscriber.Subscriber.unsubscribe (/home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/Subscriber.js:75:42)\n at finish (/home/runner/work/fusion-framework/fusion-framework/packages/modules/state/src/storage/PouchDbSyncStorage.ts:270:22)\n at /home/runner/work/fusion-framework/fusion-framework/packages/modules/state/src/storage/PouchDbSyncStorage.ts:289:9\n at callTimer (file:///home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/vitest@4.1.10_@opentelemetry+api@1.9.1_@types+node@24.13.3_@vitest+coverage-v8@4.1.10_h_a16fe9a1a056b18c6ba23fb77410b3e7/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js:1773:25)\n at doTickInner (file:///home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/vitest@4.1.10_@opentelemetry+api@1.9.1_@types+node@24.13.3_@vitest+coverage-v8@4.1.10_h_a16fe9a1a056b18c6ba23fb77410b3e7/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js:2444:30)\n at doTick (file:///home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/vitest@4.1.10_@opentelemetry+api@1.9.1_@types+node@24.13.3_@vitest+coverage-v8@4.1.10_h_a16fe9a1a056b18c6ba23fb77410b3e7/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js:2525:21)\n at Immediate.<anonymous> (file:///home/runner/work/fusion-framework/fusion-framework/node_modules/.pnpm/vitest@4.1.10_@opentelemetry+api@1.9.1_@types+node@24.13.3_@vitest+coverage-v8@4.1.10_h_a16fe9a1a056b18c6ba23fb77410b3e7/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js:2546:34)', message: 'replication.removeListener is not a function', constructor: 'Function<TypeError>', name: 'TypeError', toString: 'Function<toString>' } ] }
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull.mode "interval" > dispatches a "onStateSync.poll" event for the initial pull, distinct from status/complete: packages/modules/state/src/__tests__/PouchDbSyncStorage.test.ts#L16
Error: Hook timed out in 10000ms. If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout". ❯ src/__tests__/PouchDbSyncStorage.test.ts:16:3
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull.mode "interval" > dispatches a "onStateSync.poll" event for the initial pull, distinct from status/complete: packages/modules/state/src/storage/observe-pouch-db-replicate.ts#L34
TypeError: Cannot read properties of undefined (reading 'map') ❯ parse_replication_result src/storage/observe-pouch-db-replicate.ts:34:8 ❯ Replication.onComplete src/storage/observe-pouch-db-replicate.ts:54:33 ❯ Replication.completeReplication ../../../node_modules/.pnpm/pouchdb@9.0.0/node_modules/pouchdb/lib/index.js:10068:19 ❯ Replication.cancel ../../../node_modules/.pnpm/pouchdb@9.0.0/node_modules/pouchdb/lib/index.js:10325:10 ❯ src/storage/PouchDbSyncStorage.ts:204:34 ❯ teardown src/storage/PouchDbStorage.ts:153:34 ❯ PouchDbSyncStorage.[Symbol.dispose] src/storage/PouchDbStorage.ts:1174:7
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull.mode "interval" > surfaces a remote-only write via a scheduled pull, without needing a continuous pull connection: packages/modules/state/src/__tests__/PouchDbSyncStorage.test.ts#L16
Error: Hook timed out in 10000ms. If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout". ❯ src/__tests__/PouchDbSyncStorage.test.ts:16:3
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull.mode "interval" > surfaces a remote-only write via a scheduled pull, without needing a continuous pull connection: packages/modules/state/src/storage/observe-pouch-db-replicate.ts#L34
TypeError: Cannot read properties of undefined (reading 'map') ❯ parse_replication_result src/storage/observe-pouch-db-replicate.ts:34:8 ❯ Replication.onComplete src/storage/observe-pouch-db-replicate.ts:54:33 ❯ Replication.completeReplication ../../../node_modules/.pnpm/pouchdb@9.0.0/node_modules/pouchdb/lib/index.js:10068:19 ❯ Replication.cancel ../../../node_modules/.pnpm/pouchdb@9.0.0/node_modules/pouchdb/lib/index.js:10325:10 ❯ src/storage/PouchDbSyncStorage.ts:204:34 ❯ teardown src/storage/PouchDbStorage.ts:153:34 ❯ PouchDbSyncStorage.[Symbol.dispose] src/storage/PouchDbStorage.ts:1174:7
[@equinor/fusion-framework-module-state@1.0.0] src/__tests__/PouchDbSyncStorage.test.ts > PouchDbSyncStorage > pull.mode "interval" > keeps push live (local writes reach the remote) while scheduling pulls on a timer: packages/modules/state/src/storage/observe-pouch-db-replicate.ts#L34
TypeError: Cannot read properties of undefined (reading 'map') ❯ parse_replication_result src/storage/observe-pouch-db-replicate.ts:34:8 ❯ Replication.onComplete src/storage/observe-pouch-db-replicate.ts:54:33 ❯ Replication.completeReplication ../../../node_modules/.pnpm/pouchdb@9.0.0/node_modules/pouchdb/lib/index.js:10068:19 ❯ Replication.cancel ../../../node_modules/.pnpm/pouchdb@9.0.0/node_modules/pouchdb/lib/index.js:10325:10 ❯ src/storage/PouchDbSyncStorage.ts:204:34 ❯ teardown src/storage/PouchDbStorage.ts:153:34 ❯ PouchDbSyncStorage.[Symbol.dispose] src/storage/PouchDbStorage.ts:1174:7
Check Code
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: haya14busa/action-cond@v1. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Check Code
Input 'fail_on_error' has been deprecated with message: Deprecated, use `fail_level` instead.

Artifacts

Produced during runtime
Name Size Digest
artifact
1.74 KB
sha256:c5f2b25fe2a2de2df1df902b06ae2110bd045c336ff2f2a2202b3661ccb3fe3e