diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md
index 6873f713a374..de66ae352524 100644
--- a/cli/CHANGELOG.md
+++ b/cli/CHANGELOG.md
@@ -5,7 +5,8 @@ _Released 11/21/2023 (PENDING)_
 
 **Features:**
 
-- When artifacts are uploaded to the Cypress Cloud, the duration of each upload will be displayed in the console. Addresses [#28237](https://github.com/cypress-io/cypress/issues/28237).
+- Added an activity indicator to CLI output when artifacts (screenshots, videos, or Test Replay) are being uploaded to the cloud. Addresses [#28239](https://github.com/cypress-io/cypress/issues/28239). Addressed in [#28277](https://github.com/cypress-io/cypress/pull/28277).
+- When artifacts are uploaded to the Cypress Cloud, the duration of each upload will be displayed in the terminal. Addresses [#28237](https://github.com/cypress-io/cypress/issues/28237).
 
 **Bugfixes:**
 
diff --git a/packages/server/lib/modes/record.js b/packages/server/lib/modes/record.js
index 35b88dd56cef..57a68cd23a4f 100644
--- a/packages/server/lib/modes/record.js
+++ b/packages/server/lib/modes/record.js
@@ -21,7 +21,7 @@ const Config = require('../config')
 const env = require('../util/env')
 const terminal = require('../util/terminal')
 const ciProvider = require('../util/ci_provider')
-const { printPendingArtifactUpload, printCompletedArtifactUpload } = require('../util/print-run')
+const { printPendingArtifactUpload, printCompletedArtifactUpload, beginUploadActivityOutput } = require('../util/print-run')
 const testsUtils = require('../util/tests_utils')
 const specWriter = require('../util/spec_writer')
 const { fs } = require('../util/fs')
@@ -240,6 +240,12 @@ const uploadArtifactBatch = async (artifacts, protocolManager, quiet) => {
     }
   })
 
+  let stopUploadActivityOutput
+
+  if (!quiet && preparedArtifacts.filter(({ skip }) => !skip).length) {
+    stopUploadActivityOutput = beginUploadActivityOutput()
+  }
+
   const uploadResults = await Promise.all(
     preparedArtifacts.map(async (artifact) => {
       if (artifact.skip) {
@@ -316,7 +322,11 @@ const uploadArtifactBatch = async (artifacts, protocolManager, quiet) => {
         }
       }
     }),
-  )
+  ).finally(() => {
+    if (stopUploadActivityOutput) {
+      stopUploadActivityOutput()
+    }
+  })
 
   const attemptedUploadResults = uploadResults.filter(({ skipped }) => {
     return !skipped
diff --git a/packages/server/lib/util/print-run.ts b/packages/server/lib/util/print-run.ts
index 35fed2e62915..afc1f4c333b3 100644
--- a/packages/server/lib/util/print-run.ts
+++ b/packages/server/lib/util/print-run.ts
@@ -648,3 +648,22 @@ export const printCompletedArtifactUpload = <T extends ArtifactUploadResultLike>
 
   process.stdout.write('\n')
 }
+
+const UPLOAD_ACTIVITY_INTERVAL = typeof env.get('CYPRESS_UPLOAD_ACTIVITY_INTERVAL') === 'undefined' ? 15000 : env.get('CYPRESS_UPLOAD_ACTIVITY_INTERVAL')
+
+export const beginUploadActivityOutput = () => {
+  console.log('')
+  process.stdout.write(chalk.bold.blue('  Uploading Cloud Artifacts: '))
+  process.stdout.write(chalk.bold.blue('. '))
+  const uploadActivityInterval = setInterval(() => {
+    process.stdout.write(chalk.bold.blue('. '))
+  }, UPLOAD_ACTIVITY_INTERVAL)
+
+  return () => {
+    if (uploadActivityInterval) {
+      console.log('')
+    }
+
+    clearInterval(uploadActivityInterval)
+  }
+}
diff --git a/system-tests/__snapshots__/record_spec.js b/system-tests/__snapshots__/record_spec.js
index c5f585fd44d5..6979617b65d0 100644
--- a/system-tests/__snapshots__/record_spec.js
+++ b/system-tests/__snapshots__/record_spec.js
@@ -67,6 +67,8 @@ Fix the error in your code and re-run your tests.
   - Screenshot - Nothing to upload 
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Video - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/videos/record_error.cy.js.mp4
@@ -130,6 +132,8 @@ Because this error occurred during a \`before each\` hook we are skipping the re
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_fail.cy.js/record fails -- fails 1 -- before each hook (failed).png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Video - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/videos/record_fail.cy.js.mp4
@@ -178,6 +182,8 @@ plugin stdout
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -244,6 +250,8 @@ We dynamically generated a new test to display this failure.
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_uncaught.cy.js/An uncaught error was detected outside of a test (failed).png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Video - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/videos/record_uncaught.cy.js.mp4
@@ -1060,6 +1068,8 @@ plugin stdout
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -1576,6 +1586,8 @@ exports['e2e record api interaction errors update instance stdout warns but proc
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -1669,6 +1681,8 @@ exports['e2e record api interaction errors uploading assets warns but proceeds 1
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Video - Failed Uploading after Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/videos/record_pass.cy.js.mp4 - 500 - "Internal Server Error"
@@ -1775,6 +1789,8 @@ We will retry 3 more times in X second(s)...
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2018,6 +2034,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2103,6 +2121,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2190,6 +2210,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2275,6 +2297,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2360,6 +2384,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2445,6 +2471,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2530,6 +2558,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2615,6 +2645,8 @@ https://on.cypress.io/dashboard/organizations/org-id-1234/billing
   - Video - Nothing to upload 
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2706,6 +2738,8 @@ Details:
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2787,6 +2821,8 @@ exports['e2e record capture-protocol disabled messaging displays disabled messag
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Nothing to upload - Test Replay is only supported in Chromium browsers
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2868,6 +2904,8 @@ exports['e2e record capture-protocol enabled passing retrieves the capture proto
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -2954,6 +2992,8 @@ https://on.cypress.io/renderer-process-crashed
   - Screenshot - Nothing to upload 
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Test Replay - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1
@@ -3000,6 +3040,8 @@ https://on.cypress.io/renderer-process-crashed
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay 
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3080,6 +3122,8 @@ Error: Async error from plugins file
   - Screenshot - Nothing to upload 
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Test Replay - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1
@@ -3161,6 +3205,8 @@ exports['e2e record capture-protocol enabled protocol runtime errors db size too
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3243,6 +3289,8 @@ exports['e2e record capture-protocol enabled protocol runtime errors error initi
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Failed Capturing - Error instantiating Protocol Capture
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3324,6 +3372,8 @@ exports['e2e record capture-protocol enabled protocol runtime errors error in pr
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Failed Capturing - Error in beforeSpec
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3405,6 +3455,8 @@ exports['e2e record capture-protocol enabled protocol runtime errors error in pr
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Failed Capturing - error in beforeTest
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3486,6 +3538,8 @@ exports['e2e record capture-protocol enabled protocol runtime errors non-fatal e
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3568,6 +3622,8 @@ exports['capture-protocol api errors upload 500 - retries 8 times and fails cont
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay 
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3650,6 +3706,8 @@ exports['capture-protocol api errors upload 500 - retries 7 times and succeeds o
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3738,6 +3796,8 @@ We will retry 1 more time in X second(s)...
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - Failed Capturing - Error downloading capture code: 500 - "500 - Internal Server Error"
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
@@ -3819,6 +3879,8 @@ exports['capture-protocol api errors error report 500 continues 1'] = `
   - Screenshot - 1 kB /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
   - Test Replay - 1 kB
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Screenshot - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/2 /XXX/XXX/XXX/cypress/screenshots/record_pass.cy.js/yay it passes.png
diff --git a/system-tests/__snapshots__/video_compression_spec.js b/system-tests/__snapshots__/video_compression_spec.js
index 2d8f44b948a1..3f4ffacaa875 100644
--- a/system-tests/__snapshots__/video_compression_spec.js
+++ b/system-tests/__snapshots__/video_compression_spec.js
@@ -187,6 +187,8 @@ exports['video compression true / coerces true to 32 CRF'] = `
   - Screenshot - Nothing to upload 
   - Test Replay - Nothing to upload - Test Replay is disabled for this project. Enable Test Replay in Cloud project settings
 
+  Uploading Cloud Artifacts: . . . . .
+
   (Uploaded Cloud Artifacts)
 
   - Video - Done Uploading 1 kB in Xm, Ys ZZ.ZZms 1/1 /XXX/XXX/XXX/cypress/videos/video_compression.cy.js.mp4
diff --git a/system-tests/lib/normalizeStdout.ts b/system-tests/lib/normalizeStdout.ts
index 4d7c08ae3a4f..7bfd17530022 100644
--- a/system-tests/lib/normalizeStdout.ts
+++ b/system-tests/lib/normalizeStdout.ts
@@ -68,15 +68,8 @@ const replaceTime = (str: string, p1: string) => {
 
 const replaceScreenshotDims = (str: string, p1: string) => _.padStart('(YxX)', p1.length)
 
-const replaceUploadingResults = function (orig: string, ...rest: string[]) {
-  const adjustedLength = Math.max(rest.length, 2)
-  const match = rest.slice(0, adjustedLength - 2)
-  const results = match[1].split('\n').map((res) => res.replace(/\(\d+\/(\d+)\)/g, '(*/$1)'))
-  .sort()
-  .join('\n')
-  const ret = match[0] + results + match[3]
-
-  return ret
+const replaceUploadActivityIndicator = function (str: string, preamble: string, activity: string, ..._) {
+  return `${preamble}. . . . .`
 }
 
 // this captures an entire stack trace and replaces it with [stack trace lines]
@@ -156,8 +149,8 @@ export const normalizeStdout = function (str: string, options: any = {}) {
   // 15 seconds -> XX seconds
   .replace(/((\d+ minutes?,\s+)?\d+ seconds? *)/g, replaceTime)
   .replace(/\r/g, '')
-  // replaces multiple lines of uploading screenshots & results (since order not guaranteed)
-  .replace(/(Uploading Screenshots & Videos.*?\n\n)((.*-.*[\s\S\r]){2,}?)(\n\n)/g, replaceUploadingResults)
+  // normalizes upload indicator to a consistent number of dots
+  .replace(/(Uploading Cloud Artifacts\: )([\. ]*)/g, replaceUploadActivityIndicator)
   // fix "Require stacks" for CI
   .replace(/^(\- )(\/.*\/packages\/server\/)(.*)$/gm, '$1$3')
   // Different browsers have different cross-origin error messages
diff --git a/system-tests/test/record_spec.js b/system-tests/test/record_spec.js
index 9233b727b567..a02c7717d556 100644
--- a/system-tests/test/record_spec.js
+++ b/system-tests/test/record_spec.js
@@ -38,6 +38,11 @@ let { runId, groupId, machineId, runUrl, tags } = postRunResponse
 const { instanceId } = postRunInstanceResponse
 
 describe('e2e record', () => {
+  beforeEach(() => {
+    // uploads happen too fast to be captured by these tests without tuning these values
+    process.env.CYPRESS_UPLOAD_ACTIVITY_INTERVAL = 100
+  })
+
   context('passing', () => {
     setupStubbedServer(createRoutes())
 
@@ -2511,6 +2516,11 @@ describe('e2e record', () => {
 })
 
 describe('capture-protocol api errors', () => {
+  beforeEach(() => {
+    // uploads happen too fast to be captured by these tests without tuning these values
+    process.env.CYPRESS_UPLOAD_ACTIVITY_INTERVAL = 100
+  })
+
   enableCaptureProtocol()
 
   const stubbedServerWithErrorOn = (endpoint, numberOfFailuresBeforeSuccess = Number.MAX_SAFE_INTEGER) => {
diff --git a/system-tests/test/video_compression_spec.js b/system-tests/test/video_compression_spec.js
index c52babb8da7e..969b45803967 100644
--- a/system-tests/test/video_compression_spec.js
+++ b/system-tests/test/video_compression_spec.js
@@ -39,6 +39,11 @@ function outputFinalFrameAsJpg (inputFile, outputFile) {
 describe('e2e video compression', () => {
   systemTests.setup()
 
+  beforeEach(() => {
+    // uploads happen too fast to be captured by these tests without tuning these values
+    process.env.CYPRESS_UPLOAD_ACTIVITY_INTERVAL = 1000
+  })
+
   return [
     true,
     false,