diff --git a/changes/changelog.d/304.bugfix b/changes/changelog.d/304.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..477297a185f361ccf2a4fd967e0ba84faaaa4f0f
--- /dev/null
+++ b/changes/changelog.d/304.bugfix
@@ -0,0 +1 @@
+Fixed persistent message in playlist modal (#304)
diff --git a/front/src/components/playlists/PlaylistModal.vue b/front/src/components/playlists/PlaylistModal.vue
index 668dbf75e3221c635c149bd2b5297b2439e164a8..a5a7e9ea0234c96ecea210c49e1e1444a305296a 100644
--- a/front/src/components/playlists/PlaylistModal.vue
+++ b/front/src/components/playlists/PlaylistModal.vue
@@ -7,15 +7,15 @@
       <div class="description">
         <template v-if="track">
           <h4 class="ui header"><translate>Current track</translate></h4>
-          <div
+          <translate
             v-translate="{artist: track.artist.name, title: track.title}"
-            :template-params="{artist: track.artist.name, title: track.title}">
+            :translate-params="{artist: track.artist.name, title: track.title}">
             "%{ title }", by %{ artist }
-          </div>
+          </translate>
           <div class="ui divider"></div>
         </template>
 
-        <playlist-form></playlist-form>
+        <playlist-form :key="formKey"></playlist-form>
         <div class="ui divider"></div>
         <div v-if="errors.length > 0" class="ui negative message">
           <div class="header"><translate>We cannot add the track to a playlist</translate></div>
@@ -82,6 +82,7 @@ export default {
   },
   data () {
     return {
+      formKey: String(new Date()),
       errors: []
     }
   },
@@ -124,6 +125,9 @@ export default {
   watch: {
     '$store.state.route.path' () {
       this.$store.commit('playlists/showModal', false)
+    },
+    '$store.state.playlists.showModal' () {
+      this.formKey = String(new Date())
     }
   }
 }