diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/components/base.vue b/ee/app/assets/javascripts/analytics/cycle_analytics/components/base.vue
index 939cf80d708988b39c82f40fd6b7c2c0c1668962..5278c3b9ff7cc57c2cb9a40459a4afb84ac3c084 100644
--- a/ee/app/assets/javascripts/analytics/cycle_analytics/components/base.vue
+++ b/ee/app/assets/javascripts/analytics/cycle_analytics/components/base.vue
@@ -194,6 +194,7 @@ export default {
       <div class="gl-mt-3 gl-py-2 gl-px-3 bg-gray-light border-top border-bottom">
         <div v-if="shouldDisplayPathNavigation" class="gl-w-full gl-pb-2">
           <path-navigation
+            :key="`path_navigation_key_${pathNavigationData.length}`"
             class="js-path-navigation"
             :loading="isLoading"
             :stages="pathNavigationData"
diff --git a/ee/changelogs/unreleased/283983-vsa-path-navigation-carousel-not-dynamically-updating.yml b/ee/changelogs/unreleased/283983-vsa-path-navigation-carousel-not-dynamically-updating.yml
new file mode 100644
index 0000000000000000000000000000000000000000..179eb4fb87ca92bbcbea9b2005e066cdd616a269
--- /dev/null
+++ b/ee/changelogs/unreleased/283983-vsa-path-navigation-carousel-not-dynamically-updating.yml
@@ -0,0 +1,5 @@
+---
+title: Refresh VSA path navigation carousel when updating stage data
+merge_request: 51187
+author:
+type: fixed