diff --git a/reports/2024-09-20.md b/reports/2024-09-20.md
new file mode 100644
index 0000000..e345f72
--- /dev/null
+++ b/reports/2024-09-20.md
@@ -0,0 +1,421 @@
+Failures in [node-test-pull-request/62482](https://ci.nodejs.org/job/node-test-pull-request/62482/) to [node-test-pull-request/62568](https://ci.nodejs.org/job/node-test-pull-request/62568/) that failed 2 or more PRs
+(Generated with `ncu-ci walk pr --stats=true --markdown reports/2024-09-20.md`)
+
+| UTC Time | RUNNING | SUCCESS | UNSTABLE | ABORTED | FAILURE | Green Rate |
+| ---------------- | ------- | ------- | -------- | ------- | ------- | ---------- |
+| 2024-09-20 00:09 | 11 | 23 | 17 | 2 | 47 | 26.44% |
+
+
+### Jenkins Failure
+
+
+### Git Failure
+
+| Reason | ERROR: Error fetching remote repo 'origin'
|
+| - | :- |
+| Type | GIT_FAILURE |
+| Failed PR | 2 ([https://github.com/nodejs/node/pull/54536/](https://ci.nodejs.org/job/node-test-pull-request/62504/), [https://github.com/nodejs/node/pull/54495/](https://ci.nodejs.org/job/node-test-pull-request/62510/)) |
+| Appeared | [test-digitalocean-fedora40-x64-1](https://ci.nodejs.org/job/node-test-commit-linux/nodes=fedora-latest-x64/60685/console), [test-digitalocean-fedora40-x64-2](https://ci.nodejs.org/job/node-test-commit-linux/nodes=fedora-latest-x64/60680/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62504/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62510/ |
+
+
+Example
+
+```
+ERROR: Error fetching remote repo 'origin'
+hudson.plugins.git.GitException: Failed to fetch from git@github.com:nodejs/node.git
+ at PluginClassLoader for git//hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:997)
+ at PluginClassLoader for git//hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1239)
+ at PluginClassLoader for git//hudson.plugins.git.GitSCM._checkout(GitSCM.java:1310)
+ at PluginClassLoader for git//hudson.plugins.git.GitSCM.checkout(GitSCM.java:1277)
+```
+
+
+-------
+
+
+### Build Failure
+
+| Reason | fatal: '/home/iojs/.ccache/node.shared.reference' does not appear to be a git repository
|
+| - | :- |
+| Type | BUILD_FAILURE |
+| Failed PR | 10 ([https://github.com/nodejs/node/pull/53937/](https://ci.nodejs.org/job/node-test-pull-request/62482/), [https://github.com/nodejs/node/pull/54798/](https://ci.nodejs.org/job/node-test-pull-request/62494/), [https://github.com/nodejs/node/pull/54950/](https://ci.nodejs.org/job/node-test-pull-request/62526/), [https://github.com/nodejs/node/pull/54759/](https://ci.nodejs.org/job/node-test-pull-request/62528/), [https://github.com/nodejs/node/pull/52627/](https://ci.nodejs.org/job/node-test-pull-request/62529/), [https://github.com/nodejs/node/pull/54140/](https://ci.nodejs.org/job/node-test-pull-request/62531/), [https://github.com/nodejs/node/pull/54976/](https://ci.nodejs.org/job/node-test-pull-request/62536/), [https://github.com/nodejs/node/pull/54977/](https://ci.nodejs.org/job/node-test-pull-request/62545/), [https://github.com/nodejs/node/pull/54826/](https://ci.nodejs.org/job/node-test-pull-request/62550/), [https://github.com/nodejs/node/pull/54999/](https://ci.nodejs.org/job/node-test-pull-request/62554/)) |
+| Appeared | [test-equinix-ubuntu2204_container-armv7l-2](https://ci.nodejs.org/job/node-test-binary-armv7l/RUN_SUBSET=js,nodes=ubuntu2204-armv7l/13730/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62482/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62554/ |
+
+
+Example
+
+```
+fatal: '/home/iojs/.ccache/node.shared.reference' does not appear to be a git repository
+fatal: Could not read from remote repository.
+fatal: unable to create thread: Resource temporarily unavailable
+fatal: failed to run repack
+```
+
+
+-------
+
+
+### JSTest Failure
+
+| Reason | node-api/test_threadsafe_function/test
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 6 ([https://github.com/nodejs/node/pull/54971/](https://ci.nodejs.org/job/node-test-pull-request/62500/), [https://github.com/nodejs/node/pull/54977/](https://ci.nodejs.org/job/node-test-pull-request/62539/), [https://github.com/nodejs/node/pull/53381/](https://ci.nodejs.org/job/node-test-pull-request/62546/), [https://github.com/nodejs/node/pull/54999/](https://ci.nodejs.org/job/node-test-pull-request/62555/), [https://github.com/nodejs/node/pull/54993/](https://ci.nodejs.org/job/node-test-pull-request/62558/), [https://github.com/nodejs/node/pull/54545/](https://ci.nodejs.org/job/node-test-pull-request/62560/)) |
+| Appeared | [test-equinix-ubuntu2204_container-armv7l-2](https://ci.nodejs.org/job/node-test-binary-armv7l/RUN_SUBSET=native,nodes=ubuntu2204-armv7l/13738/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62500/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62560/ |
+
+
+Example
+
+```
+not ok 144 node-api/test_threadsafe_function/test
+ ---
+ duration_ms: 360054.38800
+ severity: fail
+ exitcode: -15
+ stack: |-
+ timeout
+ ...
+
+```
+
+
+-------
+
+| Reason | es-module/test-loaders-workers-spawned
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 5 ([https://github.com/nodejs/node/pull/54529/](https://ci.nodejs.org/job/node-test-pull-request/62516/), [https://github.com/nodejs/node/pull/54993/](https://ci.nodejs.org/job/node-test-pull-request/62558/), [https://github.com/nodejs/node/pull/54545/](https://ci.nodejs.org/job/node-test-pull-request/62560/), [https://github.com/nodejs/node/pull/52627/](https://ci.nodejs.org/job/node-test-pull-request/62564/), [https://github.com/nodejs/node/pull/54957/](https://ci.nodejs.org/job/node-test-pull-request/62568/)) |
+| Appeared | [test-ibm-alpine319_container-x64-1](https://ci.nodejs.org/job/node-test-commit-linux/nodes=alpine-latest-x64/60731/console), [test-ibm-ubuntu2204_sharedlibs_container-x64-5](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_icu_x64/46475/console), [test-ibm-ubuntu2204_sharedlibs_container-x64-1](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_openssl30_x64/46472/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62516/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62568/ |
+
+
+Example
+
+```
+not ok 229 es-module/test-loaders-workers-spawned
+ ---
+ duration_ms: 2572.64700
+ severity: fail
+ exitcode: 1
+ stack: |-
+ ▶ Worker threads do not spawn infinitely
+ ✔ should not trigger an infinite loop when using a loader exports no recognized hooks (353.558472ms)
+ ✔ should support a CommonJS entry point and a loader that imports a CommonJS module (612.68979ms)
+ ✔ should support --require and --import along with using a loader written in CJS and CJS entry point (523.045969ms)
+ ✖ should support --require and --import along with using a loader written in ESM and ESM entry point (532.654777ms)
+ AssertionError [ERR_ASSERTION]: The input did not match the regular expression /^A\r?\nA\r?\n(B\r?\nC|C\r?\nB)\r?\nD\r?\n$/. Input:
+
+ 'A\nC\nA\nB\nD\n'
+
+ at TestContext. (file:///home/iojs/build/workspace/node/test/es-module/test-loaders-workers-spawned.mjs:79:12)
+ at process.processTicksAndRejections (node:internal/process/task_queu...
+```
+
+
+-------
+
+| Reason | parallel/test-cli-node-options
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 4 ([https://github.com/nodejs/node/pull/53657/](https://ci.nodejs.org/job/node-test-pull-request/62503/), [https://github.com/nodejs/node/pull/53937/](https://ci.nodejs.org/job/node-test-pull-request/62507/), [https://github.com/nodejs/node/pull/54629/](https://ci.nodejs.org/job/node-test-pull-request/62511/), [https://github.com/nodejs/node/pull/54566/](https://ci.nodejs.org/job/node-test-pull-request/62513/)) |
+| Appeared | [test-rackspace-win2019_vs2019-x64-2](https://ci.nodejs.org/job/node-test-binary-windows-js-suites/RUN_SUBSET=3,nodes=win2019-COMPILED_BY-vs2019/30314/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62503/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62513/ |
+
+
+Example
+
+```
+not ok 125 parallel/test-cli-node-options
+ ---
+ duration_ms: 819.00700
+ severity: crashed
+ exitcode: 2147483651
+ stack: |-
+
+ <--- Last few GCs --->
+
+
+ <--- JS stacktrace --->
+
+
+ #
+ # Fatal process OOM in Re-embedded builtins: set permissions
+ #
+
+ FATAL ERROR: Committing semi space failed. Allocation failed - JavaScript heap out of memory
+ ----- Native stack trace -----
+
+ ...
+
+```
+
+
+-------
+
+| Reason | parallel/test-cli-permission-deny-fs
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 4 ([https://github.com/nodejs/node/pull/53657/](https://ci.nodejs.org/job/node-test-pull-request/62503/), [https://github.com/nodejs/node/pull/53937/](https://ci.nodejs.org/job/node-test-pull-request/62507/), [https://github.com/nodejs/node/pull/54629/](https://ci.nodejs.org/job/node-test-pull-request/62511/), [https://github.com/nodejs/node/pull/54566/](https://ci.nodejs.org/job/node-test-pull-request/62513/)) |
+| Appeared | [test-rackspace-win2019_vs2019-x64-2](https://ci.nodejs.org/job/node-test-binary-windows-js-suites/RUN_SUBSET=3,nodes=win2019-COMPILED_BY-vs2019/30314/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62503/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62513/ |
+
+
+Example
+
+```
+not ok 128 parallel/test-cli-permission-deny-fs
+ ---
+ duration_ms: 1815.00400
+ severity: fail
+ exitcode: 1
+ stack: |-
+ node:assert:408
+ throw err;
+ ^
+
+ AssertionError [ERR_ASSERTION]
+ at Object. (C:\workspace\node-test-binary-windows-js-suites\node\test\parallel\test-cli-permission-deny-fs.js:112:10)
+ at Module._compile (node:internal/modules/cjs/loader:1469:14)
+ at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
+ at Module.load (node:internal/modules/cjs/loader:1288:32)
+ at Module._load (node:internal/modules/cjs/loader:1104:12)
+ at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
+ at node:internal/main/run_main_module:28:49 {
+ generatedMessage: false,
+ code: 'ERR_ASSERTION',
+ actual: false,
+ expected: true,
+ operator: '=='
+ }
+
+ Node.js v20.17.1-pre
+ ...
+
+```
+
+
+-------
+
+| Reason | parallel/test-http2-large-write-multiple-requests
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 4 ([https://github.com/nodejs/node/pull/54935/](https://ci.nodejs.org/job/node-test-pull-request/62495/), [https://github.com/nodejs/node/pull/54536/](https://ci.nodejs.org/job/node-test-pull-request/62504/), [https://github.com/nodejs/node/pull/54529/](https://ci.nodejs.org/job/node-test-pull-request/62518/), [https://github.com/nodejs/node/pull/54993/](https://ci.nodejs.org/job/node-test-pull-request/62558/)) |
+| Appeared | [test-ibm-ubuntu2204_sharedlibs_container-x64-3](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_withoutintl_x64/46472/console), [test-ibm-rhel8-x64-2](https://ci.nodejs.org/job/node-test-commit-linux/nodes=rhel8-x64/60693/console), [test-ibm-alpine319_container-x64-1](https://ci.nodejs.org/job/node-test-commit-linux/nodes=alpine-latest-x64/60673/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62495/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62558/ |
+
+
+Example
+
+```
+not ok 2915 parallel/test-http2-large-write-multiple-requests
+ ---
+ duration_ms: 120087.18200
+ severity: fail
+ exitcode: -15
+ stack: |-
+ timeout
+ server sends content 1
+ server sends content 2
+ server sends content 3
+ server sends content 4
+ server sends content 5
+ server sends content 6
+ server sends content 7
+ server sends content 8
+ server sends content 9
+ server sends content 10
+ server sends content 11
+ server sends content 12
+ server sends content 13
+ server sends content 14
+ server sends content 15
+ server sends content 16
+ server sends content 17
+ server sends content 18
+ server sends content 19
+ server sends content 20
+ server sends content 21
+ server sends content 22
+ server sends content 23
+ server sends content 24
+ server sends content 25
+ server sends content 26
+ server sends content 27
+ server sends content 28
+ server sends content 29
+ server sends content 30
+ server sends content 31
+ server s...
+```
+
+
+-------
+
+| Reason | parallel/test-runner-watch-mode-complex
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 3 ([https://github.com/nodejs/node/pull/53657/](https://ci.nodejs.org/job/node-test-pull-request/62503/), [https://github.com/nodejs/node/pull/54978/](https://ci.nodejs.org/job/node-test-pull-request/62524/), [https://github.com/nodejs/node/pull/54957/](https://ci.nodejs.org/job/node-test-pull-request/62568/)) |
+| Appeared | [test-digitalocean-ubuntu2204_sharedlibs_container-x64-10](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_shared_x64/46482/console), [test-ibm-ubuntu2204_sharedlibs_container-x64-1](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_shared_x64/46445/console), [test-ibm-rhel8-s390x-1](https://ci.nodejs.org/job/node-test-commit-linuxone/nodes=rhel8-s390x/45904/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62503/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62568/ |
+
+
+Example
+
+```
+not ok 2481 parallel/test-runner-watch-mode-complex
+ ---
+ duration_ms: 5802.69800
+ severity: fail
+ exitcode: 1
+ stack: |-
+ ▶ test runner watch mode with more complex setup
+ ✖ should run tests when a dependency changed after a watched test file being deleted (4897.404205ms)
+ AssertionError [ERR_ASSERTION]: The input did not match the regular expression /tests 2/. Input:
+
+ '✔ second test has ran (10.530244ms)\n' +
+ '✔ first test has ran (19.734421ms)\n' +
+ '✔ second test has ran (4.189184ms)\n' +
+ 'ℹ tests 3\n' +
+ 'ℹ suites 0\n' +
+ 'ℹ pass 3\n' +
+ 'ℹ fail 0\n' +
+ 'ℹ cancelled 0\n' +
+ 'ℹ skipped 0\n' +
+ 'ℹ todo 0\n' +
+ 'ℹ duration_ms 1262.981569\n'
+
+ at TestContext. (file:///home/iojs/build/workspace/node-test-commit-linux-containered/test/parallel/test-runner-watch-mode-complex.mjs:99:12)
+ at process.processTicksAndRejections (node:internal/process...
+```
+
+
+-------
+
+| Reason | parallel/test-buffer-tostring-rangeerror
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 2 ([https://github.com/nodejs/node/pull/54977/](https://ci.nodejs.org/job/node-test-pull-request/62539/), [https://github.com/nodejs/node/pull/55004/](https://ci.nodejs.org/job/node-test-pull-request/62566/)) |
+| Appeared | [test-ibm-rhel8-x64-2](https://ci.nodejs.org/job/node-test-commit-linux/nodes=rhel8-x64/60729/console), [test-ibm-ubuntu2204_sharedlibs_container-x64-4](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_openssl30_x64/46458/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62539/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62566/ |
+
+
+Example
+
+```
+not ok 834 parallel/test-buffer-tostring-rangeerror
+ ---
+ duration_ms: 120073.15000
+ severity: fail
+ exitcode: -15
+ stack: |-
+ timeout
+ (node:153605) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
+ (Use `node --trace-deprecation ...` to show where the warning was created)
+ ...
+
+```
+
+
+-------
+
+| Reason | parallel/test-http-remove-header-stays-removed
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 2 ([https://github.com/nodejs/node/pull/54978/](https://ci.nodejs.org/job/node-test-pull-request/62524/), [https://github.com/nodejs/node/pull/54976/](https://ci.nodejs.org/job/node-test-pull-request/62525/)) |
+| Appeared | [test-ibm-ubuntu2204_sharedlibs_container-x64-5](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_shared_x64/46446/console), [test-ibm-ubuntu2204_sharedlibs_container-x64-1](https://ci.nodejs.org/job/node-test-commit-linux-containered/nodes=ubuntu2204_sharedlibs_shared_x64/46445/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62524/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62525/ |
+
+
+Example
+
+```
+not ok 1658 parallel/test-http-remove-header-stays-removed
+ ---
+ duration_ms: 943.08900
+ severity: fail
+ exitcode: 1
+ stack: |-
+ ok
+ node:assert:90
+ throw new AssertionError(obj);
+ ^
+
+ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+
+ false !== true
+
+ at Timeout._onTimeout (/home/iojs/build/workspace/node-test-commit-linux-containered/test/parallel/test-http-remove-header-stays-removed.js:61:18)
+ at listOnTimeout (node:internal/timers:614:17)
+ at process.processTimers (node:internal/timers:549:7) {
+ generatedMessage: true,
+ code: 'ERR_ASSERTION',
+ actual: false,
+ expected: true,
+ operator: 'strictEqual'
+ }
+
+ Node.js v23.0.0-pre
+ ...
+
+```
+
+
+-------
+
+| Reason | parallel/test-runner-no-isolation-hooks
|
+| - | :- |
+| Type | JS_TEST_FAILURE |
+| Failed PR | 2 ([https://github.com/nodejs/node/pull/53937/](https://ci.nodejs.org/job/node-test-pull-request/62482/), [https://github.com/nodejs/node/pull/54950/](https://ci.nodejs.org/job/node-test-pull-request/62486/)) |
+| Appeared | [test-equinix-debian11_container-armv7l-1](https://ci.nodejs.org/job/node-test-binary-armv7l/RUN_SUBSET=js,nodes=debian11-armv7l/13670/console), [test-rackspace-win2016_vs2015-x64-2](https://ci.nodejs.org/job/node-test-binary-windows-js-suites/RUN_SUBSET=2,nodes=win2016-COMPILED_BY-vs2022-x86/30297/console) |
+| First CI | https://ci.nodejs.org/job/node-test-pull-request/62482/ |
+| Last CI | https://ci.nodejs.org/job/node-test-pull-request/62486/ |
+
+
+Example
+
+```
+not ok 2461 parallel/test-runner-no-isolation-hooks
+ ---
+ duration_ms: 924.30000
+ severity: fail
+ exitcode: 1
+ stack: |-
+ TAP version 13
+ # Subtest: Using --require to define global hooks works
+ not ok 1 - Using --require to define global hooks works
+ ---
+ duration_ms: 257.431579
+ location: '/home/iojs/build/workspace/node-test-binary-armv7l/test/parallel/test-runner-no-isolation-hooks.mjs:48:1'
+ failureType: 'testCodeFailure'
+ error: |-
+ The expression evaluated to a falsy value:
+
+ t.assert.ok(spawned.stdout.includes(order.join('\n')))
+
+ code: 'ERR_ASSERTION'
+ name: 'AssertionError'
+ expected: true
+ actual: false
+ operator: '=='
+ stack: |-
+ TestContext. (file:///home/iojs/build/workspace/node-test-binary-armv7l/test/parallel/test-runner-no-isolation-hooks.mjs:55:12)
+ process.processTicksAndRejections (node:internal/process/task_queues:105:5)
+ async Test.run (node:internal/test_...
+```
+
+
+-------
+