diff --git a/changes/changelog.d/457.bugfix b/changes/changelog.d/457.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..bfd9dc967388028032b1221fb2f5872f41685c46
--- /dev/null
+++ b/changes/changelog.d/457.bugfix
@@ -0,0 +1 @@
+Fixed crash on artist pages when no cover is available (#457)
diff --git a/front/src/components/library/Artist.vue b/front/src/components/library/Artist.vue
index 0f0abe1e91756b12bbf1b19d075ce8b347155e21..a507ae4034449ca3168a3383f9d7a976dd2c2d63 100644
--- a/front/src/components/library/Artist.vue
+++ b/front/src/components/library/Artist.vue
@@ -1,6 +1,6 @@
 <template>
-  <div>
-    <div v-if="isLoading" class="ui vertical segment" v-title="labels.title">
+  <div v-title="labels.title">
+    <div v-if="isLoading" class="ui vertical segment">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
     <template v-if="artist">
@@ -102,7 +102,7 @@ export default {
         self.artist = response.data
         self.isLoading = false
         self.isLoadingAlbums = true
-        axios.get('albums/', {params: {artist: this.id, ordering: '-release_date'}}).then((response) => {
+        axios.get('albums/', {params: {artist: self.id, ordering: '-release_date'}}).then((response) => {
           let parsed = JSON.parse(JSON.stringify(response.data.results))
           self.albums = parsed.map((album) => {
             return backend.Album.clean(album)
@@ -158,7 +158,7 @@ export default {
       })[0]
     },
     headerStyle () {
-      if (!this.cover.original) {
+      if (!this.cover || !this.cover.original) {
         return ''
       }
       return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.cover.original) + ')'