diff --git a/server/subsonic/media_annotation.go b/server/subsonic/media_annotation.go
index 370a05d18..e59daec5a 100644
--- a/server/subsonic/media_annotation.go
+++ b/server/subsonic/media_annotation.go
@@ -49,13 +49,21 @@ func (c *MediaAnnotationController) SetRating(w http.ResponseWriter, r *http.Req
 }
 
 func (c *MediaAnnotationController) setRating(ctx context.Context, id string, rating int) error {
-	exist, err := c.ds.Album(ctx).Exists(id)
-	if err != nil {
+	var exist bool
+	var err error
+
+	if exist, err = c.ds.Artist(ctx).Exists(id); err != nil {
 		return err
+	} else if exist {
+		return c.ds.Artist(ctx).SetRating(rating, id)
 	}
-	if exist {
+
+	if exist, err = c.ds.Album(ctx).Exists(id); err != nil {
+		return err
+	} else if exist {
 		return c.ds.Album(ctx).SetRating(rating, id)
 	}
+
 	return c.ds.MediaFile(ctx).SetRating(rating, id)
 }