Massive duplication of playlist entries suddenly appears

Roon Core Machine

MacBook Pro i7 16GB (headless) OSX 11
Roon 2.0 build 1143

Networking Gear & Setup Details

Amplifi Router HD / Wifi

Connected Audio Devices

Sonos 5, Sonos streaming
Bluesound PowerNode, wifi streaming
Chord Mojo 2, USB C

Number of Tracks in Library

6582

Description of Issue

About two weeks ago, I noticed a whole lot of duplicates in two of my playlists. I laboriously deleted them. That reduced my “working” playlist from something like 150 hours to something like 60 hours.

Since then, I’ve been extra careful adding new playlist entries. (I have a playlist called “Artists to Watch”. When a song I like plays, I move it to one of the other playlists.)

However, I just noticed that I now have 215 hours in “working”. It’s been less than a week since the last time I checked.

Some tracks have no duplicates. Some have just one. A number have three. (Two copies of a track is far more common than four.) The duplicates come from Tidal, Qobuz, and my ripped library (stored on a Synology NAS connected to the server by ethernet).

I’m going to assume this is not some new Roon feature where Roon has decided shuffle should play Glenn Miller’s Moonlight Serenade twice as often as Big Twist’s Funky Tom’s Place and the Scherzo from Beethoven’s Pastoral Sonata twice as much as Moonlight Serenade.

I think massive duplicates predates 2.0, but I’m not sure.

Given that it takes two clicks and a scroll to delete a single entry, I would very much like this not to keep happening.

Oh, another thing I just noticed. My “working” software is non-vocal. Sometimes I get vocal tracks in there, but I’ve attributed it to my adding it to the wrong playlist.

However, the entire album of Jeanne Bryson’s “Some Cats Know” appears in both the non-vocal “working” and the vocal “shuffle”. So are many other vocal albums. Non-vocal albums appear in “shuffle”. (I haven’t noticed before because I’ve been going through a massive binge of populating playlists from “Artists to Watch” rather than listening to the populated playlists.)

I don’t know of any way to recover all that playlist-building work. As a programmer, it looks to me like the database is corrupt. Are there tools to fix it? Can it be dumped in a format that would let me delete all duplicates programmatically?

Is this not the right place to report bugs?

This is the place to request help from Roon @support

However, Roon support is pretty backed up right now just trying to deal with people trying to solve problems upgrading to Roon 2.0 on multiple devices and getting Roon ARC and port forwarding working.

I sympathize. I’ve been a programmer in software companies since 1981. But it’s a good practice to delegate someone to say “we’re under the gun because of the new release and we promise we’ll get to you once the crunch is over.” Simply ignoring customer problems is, in my experience, a bad sign.

It’s often enough to be sympathetic – “we are sorry you lost a whole lot of work”.

It would also be OK to say, “Somehow, the playlists database got scrozzled. Sorry. If you do X (like delete all your playlists), your Roon server database will probably be back to a consistent state and you can start building playlists with confidence”.

As it stands, I tried to carefully build a new playlist from an old one, one track at a time, but allovasudden it ballooned up to a ridiculous number of hours. Unfortunately, I hadn’t checked the playlist after every addition, so I can’t produce a reproducible bug report. For some years, making reproducible bug reports was what I got paid to do. I’m not inclined to keep doing that work without some assistance/encouragement from @roonlabs.

OK. I think I understand. If I’m right, it’s the sort of thing programmers like to call “user error” or “works as designed”. I won’t go into a long user-experience spiel, but I think a design that allows a single click to cause a lot of hard-to-repair damage deserves to be called a bug.

I will copy this to Feature Suggestions but leave it here in case someone else has the same problem in the future.

My use case: I have a temporary “Artists to Watch” playlist. As I listen to tracks, I sometimes want to (1) move the track – or perhaps several – to an appropriate playlist, and (2) delete it from “Artists to Watch”. Here’s a screenshot of the starting state of that process.

Notice that there are three identical “…” buttons that each bring up a popup context menu with a “Add to Playlist button”. The top left and bottom right buttons both do the same thing in the most common case (where only one is selected). (I know you don’t need to select a single track to move only it with the track-level “…” button, but doing so that displays up the big red REMOVE button, so the “move” process can be (1) click “…”, (2) click “add to playlist”, dismissing the context menu, and (3) press REMOVE. That’s not really more efficient, but it’s the habit I got into.)

Now notice which “…” button is closest to REMOVE. Not the button that adds the single entry, or the button that adds all selected entries, but the button that adds an entire playlist to another playlist. If you’re careless, the affordance of being close to the next button you want to press will incline you to click on that one, the very worst one, the one that might add 150 hours of tracks to a playlist that already has them.

Notice that the “…” buttons will bring up somewhat different context menus, but muscle memory is going to move you directly to the part of the menu that looks the same in all three. You won’t see the rest of the menu because you know where you’re going.

Screen Shot 2022-11-05 at 12.44.33

Because there’s no “delete all duplicates in this playlist” action (right?), this is an expensive typo to make. (I’m going to look for the first duplicated track and delete everything past that. But note that’s actually not easy to do – if you narrow the search to look for it, when you back out of there, you go to the top of the playlist, not the selected duplicate. So as far as I can tell, I have to guess where the first duplicate is and scroll around until I find it. A pain with 6000+ tracks. Also, I have to handle specially any things I added since I made the mistake. At this point, things are scrozzled enough that I’m going to lose a fair amount of work.)

Suggestions:

  1. Put an “Are you sure you want to add the entire playlist?” confirmation popup.
  2. Is adding one playlist to another a common enough operation that it should look like the other “…”-button options?
  3. Provide a way to delete all duplicates. Oh please please please.

And:

  1. Provide a way to move a track from one playlist to another. I personally would prefer it if it didn’t produce duplicates unless you specifically ask it to, especially since it’s tedious to delete duplicates.
  2. Maybe tailor the popup context menu so it says something like “add 2 tracks to playlist”, rather than having that information out of focus in the top-left of the window.