diff --git a/changes/changelog.d/606.bugfix b/changes/changelog.d/606.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..95db711975d8e37affe5ca6b127f1b5f48598eef
--- /dev/null
+++ b/changes/changelog.d/606.bugfix
@@ -0,0 +1 @@
+Refresh profile after user settings update to avoid cache issues (#606)
diff --git a/front/src/components/auth/Settings.vue b/front/src/components/auth/Settings.vue
index ec3b8f994d2abfdebf845e07c47063bc886c2dae..0c27d9a9aecabdf9d20cc59db473e11096f5a58b 100644
--- a/front/src/components/auth/Settings.vue
+++ b/front/src/components/auth/Settings.vue
@@ -170,6 +170,9 @@ export default {
       return axios.patch(url, payload).then(response => {
         logger.default.info('Updated settings successfully')
         self.settings.success = true
+        return axios.get('users/users/me/').then((response) => {
+          self.$store.dispatch('auth/updateProfile', response.data)
+        })
       }, error => {
         logger.default.error('Error while updating settings')
         self.isLoading = false
diff --git a/front/src/store/auth.js b/front/src/store/auth.js
index 7551f444907f97d2a06f890908adb788e8f53786..70dbe26babe36933a111f286dc257a8236bb2dea 100644
--- a/front/src/store/auth.js
+++ b/front/src/store/auth.js
@@ -119,22 +119,27 @@ export default {
 
       return axios.get('users/users/me/').then((response) => {
         logger.default.info('Successfully fetched user profile')
-        let data = response.data
-        commit('authenticated', true)
-        commit('profile', data)
-        commit('username', data.username)
+        dispatch('updateProfile', response.data)
         dispatch('ui/fetchUnreadNotifications', null, { root: true })
         dispatch('favorites/fetch', null, { root: true })
         dispatch('playlists/fetchOwn', null, { root: true })
-        Object.keys(data.permissions).forEach(function (key) {
-          // this makes it easier to check for permissions in templates
-          commit('permission', {key, status: data.permissions[String(key)]})
-        })
         return response.data
       }, (response) => {
         logger.default.info('Error while fetching user profile')
       })
     },
+    updateProfile({ commit }, data) {
+      commit("authenticated", true)
+      commit("profile", data)
+      commit("username", data.username)
+      Object.keys(data.permissions).forEach(function(key) {
+        // this makes it easier to check for permissions in templates
+        commit("permission", {
+          key,
+          status: data.permissions[String(key)]
+        })
+      })
+    },
     refreshToken ({commit, dispatch, state}) {
       return axios.post('token/refresh/', {token: state.token}).then(response => {
         logger.default.info('Refreshed auth token')