diff --git a/.github/workflows/canary-deploy.yml b/.github/workflows/canary-deploy.yml
index b2139d4df0c..497874cd278 100644
--- a/.github/workflows/canary-deploy.yml
+++ b/.github/workflows/canary-deploy.yml
@@ -31,7 +31,7 @@ jobs:
       with:
         # Canary release script requires git history and tags.
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/check-changeset.yml b/.github/workflows/check-changeset.yml
index fa93c2c6cc9..124d0bd743f 100644
--- a/.github/workflows/check-changeset.yml
+++ b/.github/workflows/check-changeset.yml
@@ -34,7 +34,7 @@ jobs:
       with:
         # This makes Actions fetch all Git history so check_changeset script can diff properly.
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml
index 34ad997fbc4..35ddbf24118 100644
--- a/.github/workflows/check-docs.yml
+++ b/.github/workflows/check-docs.yml
@@ -27,7 +27,7 @@ jobs:
       with:
         # get all history for the diff
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/check-pkg-paths.yml b/.github/workflows/check-pkg-paths.yml
index 3d6fb1099e3..85bf251681d 100644
--- a/.github/workflows/check-pkg-paths.yml
+++ b/.github/workflows/check-pkg-paths.yml
@@ -27,7 +27,7 @@ jobs:
       with:
         # This makes Actions fetch all Git history so run-changed script can diff properly.
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/deploy-config.yml b/.github/workflows/deploy-config.yml
index f01d8dcc9b3..5745b86417d 100644
--- a/.github/workflows/deploy-config.yml
+++ b/.github/workflows/deploy-config.yml
@@ -35,7 +35,7 @@ jobs:
       with:
         # This makes Actions fetch all Git history so run-changed script can diff properly.
         fetch-depth: 0
-    - name: Set up node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml
index f22f77e0fe5..6ad5c040496 100644
--- a/.github/workflows/e2e-test.yml
+++ b/.github/workflows/e2e-test.yml
@@ -36,7 +36,7 @@ jobs:
     steps:
       - name: Checkout Repo
         uses: actions/checkout@v4
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@master
         with:
           node-version: 22.10.0
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 8dc971a1a8c..f3e3b4a3c85 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -31,7 +31,7 @@ jobs:
       with:
         # get all history for the diff
         fetch-depth: 0
-    - name: Set up node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 82bb1410226..4a646f82a9b 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -23,7 +23,7 @@ jobs:
 
     steps:
     - uses: actions/checkout@v3
-    - name: Set up node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/prerelease-manual-deploy.yml b/.github/workflows/prerelease-manual-deploy.yml
index 7821734e85a..cab0d12c858 100644
--- a/.github/workflows/prerelease-manual-deploy.yml
+++ b/.github/workflows/prerelease-manual-deploy.yml
@@ -34,7 +34,7 @@ jobs:
           with:
             # Canary release script requires git history and tags.
             fetch-depth: 0
-        - name: Set up node (20)
+        - name: Set up Node (22.10.0)
           uses: actions/setup-node@v3
           with:
             node-version: 22.10.0
diff --git a/.github/workflows/release-prod.yml b/.github/workflows/release-prod.yml
index 1ac9d1f3ee7..17196859062 100644
--- a/.github/workflows/release-prod.yml
+++ b/.github/workflows/release-prod.yml
@@ -32,7 +32,7 @@ jobs:
       contents: write
 
     steps:
-    - name: Set up node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/release-staging.yml b/.github/workflows/release-staging.yml
index 94b66c6c7a5..d893b453629 100644
--- a/.github/workflows/release-staging.yml
+++ b/.github/workflows/release-staging.yml
@@ -46,7 +46,7 @@ jobs:
     # Block this workflow if run on a non-release branch.
     if: github.event.inputs.release-branch == 'release' || endsWith(github.event.inputs.release-branch, '-releasebranch')
     steps:
-    - name: Set up node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml
index 68983f50a38..6e8a430e6d2 100644
--- a/.github/workflows/test-all.yml
+++ b/.github/workflows/test-all.yml
@@ -40,7 +40,7 @@ jobs:
       run: |
         npx @puppeteer/browsers install chrome@stable
     - uses: actions/checkout@v3
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
@@ -79,7 +79,7 @@ jobs:
         name: build.tar.gz
     - name: Unzip build artifact
       run: tar xf build.tar.gz
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
@@ -130,7 +130,7 @@ jobs:
         name: build.tar.gz
     - name: Unzip build artifact
       run: tar xf build.tar.gz
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
@@ -170,7 +170,7 @@ jobs:
         name: build.tar.gz
     - name: Unzip build artifact
       run: tar xf build.tar.gz
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
@@ -214,7 +214,7 @@ jobs:
         name: build.tar.gz
     - name: Unzip build artifact
       run: tar xf build.tar.gz
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/test-changed-auth.yml b/.github/workflows/test-changed-auth.yml
index f94d058fb04..8a0add0d044 100644
--- a/.github/workflows/test-changed-auth.yml
+++ b/.github/workflows/test-changed-auth.yml
@@ -56,7 +56,7 @@ jobs:
         with:
           # This makes Actions fetch all Git history so run-changed script can diff properly.
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -88,7 +88,7 @@ jobs:
         with:
           # This makes Actions fetch all Git history so run-changed script can diff properly.
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -112,7 +112,7 @@ jobs:
         uses: actions/checkout@v4
         with:
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
diff --git a/.github/workflows/test-changed-fcm-integration.yml b/.github/workflows/test-changed-fcm-integration.yml
index ee7b680f70d..e6e2adc5c4c 100644
--- a/.github/workflows/test-changed-fcm-integration.yml
+++ b/.github/workflows/test-changed-fcm-integration.yml
@@ -38,7 +38,7 @@ jobs:
       with:
         # This makes Actions fetch all Git history so run-changed script can diff properly.
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/test-changed-firestore-integration.yml b/.github/workflows/test-changed-firestore-integration.yml
index b288ea49ed0..5adb37951ca 100644
--- a/.github/workflows/test-changed-firestore-integration.yml
+++ b/.github/workflows/test-changed-firestore-integration.yml
@@ -68,7 +68,7 @@ jobs:
         rm -f "$output_file"
       continue-on-error: true
 
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/test-changed-firestore.yml b/.github/workflows/test-changed-firestore.yml
index 7a181702d35..3512f801cdf 100644
--- a/.github/workflows/test-changed-firestore.yml
+++ b/.github/workflows/test-changed-firestore.yml
@@ -37,7 +37,7 @@ jobs:
         with:
           # This makes Actions fetch all Git history so run-changed script can diff properly.
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -84,7 +84,7 @@ jobs:
     needs: build
     if: ${{ needs.build.outputs.changed == 'true'}}
     steps:
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -112,7 +112,7 @@ jobs:
     needs: build
     if: ${{ needs.build.outputs.changed == 'true'}}
     steps:
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -142,7 +142,7 @@ jobs:
     needs: build
     if: ${{ github.event_name != 'pull_request' }}
     steps:
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -180,7 +180,7 @@ jobs:
         run: |
           sudo apt-get update
           sudo apt-get install firefox
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -219,7 +219,7 @@ jobs:
           name: build.tar.gz
       - name: Unzip build artifact
         run: tar xf build.tar.gz
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -237,7 +237,7 @@ jobs:
     needs: build
     if: ${{ needs.build.outputs.changed == 'true'}}
     steps:
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -274,7 +274,7 @@ jobs:
           name: build.tar.gz
       - name: Unzip build artifact
         run: tar xf build.tar.gz
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
diff --git a/.github/workflows/test-changed-misc.yml b/.github/workflows/test-changed-misc.yml
index 3cabe64f2b3..910eef53caf 100644
--- a/.github/workflows/test-changed-misc.yml
+++ b/.github/workflows/test-changed-misc.yml
@@ -31,7 +31,7 @@ jobs:
       with:
         # This makes Actions fetch all Git history so run-changed script can diff properly.
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/test-changed.yml b/.github/workflows/test-changed.yml
index 6499a825725..b8b6119cd01 100644
--- a/.github/workflows/test-changed.yml
+++ b/.github/workflows/test-changed.yml
@@ -31,7 +31,7 @@ jobs:
         with:
           # This makes Actions fetch all Git history so run-changed script can diff properly.
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -60,7 +60,7 @@ jobs:
         uses: actions/checkout@v4
         with:
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
@@ -89,7 +89,7 @@ jobs:
         uses: actions/checkout@v4
         with:
           fetch-depth: 0
-      - name: Set up Node (20)
+      - name: Set up Node (22.10.0)
         uses: actions/setup-node@v3
         with:
           node-version: 22.10.0
diff --git a/.github/workflows/test-firebase-integration.yml b/.github/workflows/test-firebase-integration.yml
index 9a99e6f82a3..57e053fc7c9 100644
--- a/.github/workflows/test-firebase-integration.yml
+++ b/.github/workflows/test-firebase-integration.yml
@@ -31,7 +31,7 @@ jobs:
       with:
         # This makes Actions fetch all Git history so run-changed script can diff properly.
         fetch-depth: 0
-    - name: Set up Node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0
diff --git a/.github/workflows/update-api-reports.yml b/.github/workflows/update-api-reports.yml
index 761d7020c7a..db24ace1f49 100644
--- a/.github/workflows/update-api-reports.yml
+++ b/.github/workflows/update-api-reports.yml
@@ -30,7 +30,7 @@ jobs:
         # checkout HEAD commit instead of merge commit
         ref: ${{ github.event.pull_request.head.ref }}
         token: ${{ github.token }}
-    - name: Set up node (20)
+    - name: Set up Node (22.10.0)
       uses: actions/setup-node@v3
       with:
         node-version: 22.10.0