diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 72cdf016345c82320d50a73f9e5a89dd03d502fe..c998f42905f99b1424ae92b78f32c9f4e738a597 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -390,7 +390,7 @@ jobs:
           tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts
       - name: Post Windows symbols
         if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
-        uses: Bugsplat-Git/symbol-upload@v9.1.1
+        uses: Bugsplat-Git/symbol-upload@v10
         with:
           username: ${{ env.BUGSPLAT_USER }}
           password: ${{ env.BUGSPLAT_PASS }}
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index a5b87679237cc44323bf555594ed19730b567561..1d757abeffb40941536a386995915652fb0a5713 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -19,7 +19,7 @@ if (WINDOWS OR DARWIN )
     endif()
   else()
     set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,>)
-    set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,>)
+    set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,>/${VIEWER_CHANNEL})
   endif()
 
   if( DARWIN )
diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt
index e3404b3a23bd5122fd3ced8fd9a5a083ce375c45..30aaec1265abd35f031bc59127748224a40b3b2b 100644
--- a/indra/llwebrtc/CMakeLists.txt
+++ b/indra/llwebrtc/CMakeLists.txt
@@ -44,13 +44,13 @@ if (WINDOWS)
                                        strmiids
                                        iphlpapi)
     if (USE_BUGSPLAT)
-        set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}")
+        set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}")
     endif (USE_BUGSPLAT)
 elseif (DARWIN)
     target_link_libraries(llwebrtc PRIVATE ll::webrtc)
     if (USE_BUGSPLAT)
         set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym"
-                                                  XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs")
+                                                  XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/dSYMs")
     endif (USE_BUGSPLAT)
 elseif (LINUX)
     target_link_libraries(llwebrtc PRIVATE ll::webrtc)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index c5f38a832a8f4aea104e04d44b1475b3b2eeb95a..517b25def55769777027aabe6a4ba524333271a3 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2161,8 +2161,8 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE
   if (USE_BUGSPLAT)
     # BugSplat symbol-file generation
     if (WINDOWS)
-      set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.sym.tar.xz")
-      set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}")
+      set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}.sym.tar.xz")
+      set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}")
 
       # Just pack up a tarball containing only the .pdb files for the
       # executables.
@@ -2173,7 +2173,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE
           "${VIEWER_CHANNEL}.sym.tar.xz"
           "${VIEWER_CHANNEL}"
         DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc
-        WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}"
+        WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}/.."
         COMMENT "Packing viewer PDBs into ${VIEWER_APP_SYMBOLS_ARCHIVE}"
         )
       add_custom_target(generate_symbols DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}")
@@ -2181,21 +2181,21 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE
 
     endif (WINDOWS)
     if (DARWIN)
-      set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip")
+      set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}.xcarchive.zip")
 
       # we only need an xcarchive with dSYMs (including the application)
       set_target_properties(${VIEWER_BINARY_NAME}
             PROPERTIES
             XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym"
-            XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${product}/dSYMs")
+            XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/dSYMs")
     
       add_custom_command(OUTPUT "${VIEWER_APP_XCARCHIVE}"
           COMMAND "zip"
           ARGS
             "-r"
             "${VIEWER_APP_XCARCHIVE}"
-            "${product}"
-          WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}"
+            "${VIEWER_CHANNEL}"
+          WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}/.."
           DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc
           COMMENT "Generating ${VIEWER_APP_XCARCHIVE} for upload to BugSplat"
           )