diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
index 18aedf14a0ffce8632b102564d04c23469f89651..016193af8d4c2d721877922cb3db612e28561d32 100644
--- a/.github/workflows/build-docs.yml
+++ b/.github/workflows/build-docs.yml
@@ -23,7 +23,7 @@ jobs:
       - name: Build documentation
         run: make -C docs html
       - name: Archive build output
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: docs_output
           path: docs/_build/html
diff --git a/.github/workflows/build-gluon.yml b/.github/workflows/build-gluon.yml
index 40fe7f69b2718b2b580272f27ba3f07cce0f76cd..4783c54a29d765b05818451b8d74053598e64ada 100644
--- a/.github/workflows/build-gluon.yml
+++ b/.github/workflows/build-gluon.yml
@@ -56,13 +56,13 @@ jobs:
 
       - name: Archive build logs
         if: ${{ !cancelled() }}
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: ${{ matrix.target }}_logs
           path: openwrt/logs
 
       - name: Archive build output
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: ${{ matrix.target }}_output
           path: output