Originally Posted by robko
My understanding of the multi-shelf issue is that it's on the server end.
Not true, although it IS a thorny problem to fix. For me, it took the iOS app, deleting shelves on it and the device, and some careful syncing at different places. (Not in that order.)
What I did was create entirely new shelves with the iOS app, move my books there, delete the old shelves in the app, sync the device, then refresh the app. The first couple of times, the duplicate shelves - which are really shelves with the same name but different database IDs - would keep reappearing as I removed different versions of them. Eventually, though, I got through all the removable shelves (Shortlist can't be removed).
As I recall, I did eventually just nuke the database on the device (after making sure the app was up-to-date), restart the device, and sync to rebuild the database from the downloaded data - but I think that was due to sideloaded books that the app obviously couldn't see to update. If all of your sideloaded books are on your card and you pull the card before you start this process, you should lose the sideloaded books' data but be able to clear out your duplicate shelves.
At any rate, once I went through that process and got rid of all my duplicate shelves, they've never come back. It was just a question of clearing that bad data out of all the parts of the ecosystem: device, app, and anything else that touched the server records.