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.)

Well, Kobo seems to think it is true. They have stated this several times. What you are seeing is that once it happens, fixing it on the device is virtually impossible without directly manipulating the database. And it keeps coming back.

Well, Kobo seems to think it is true. They have stated this several times. What you are seeing is that once it happens, fixing it on the device is virtually impossible without directly manipulating the database. And it keeps coming back.

(shrug) I used to have several duplicated shelves, but once I solidly fixed the issue, I've had no more problems in that respect. Now, I'm sure it's possible to make server changes that would solve the problem across the board - I'm just saying that in my experience, it's not the only way to fix it.

Of course, I've also caught Kobo lying to me on multiple issues - like changing book prices and unwarranted DRM - so I have reasons not to take their statements as gospel.

(shrug) I used to have several duplicated shelves, but once I solidly fixed the issue, I've had no more problems in that respect. Now, I'm sure it's possible to make server changes that would solve the problem across the board - I'm just saying that in my experience, it's not the only way to fix it.

The cause of the problem is the server. Fixing it is a completely different issue. For people who are willing to hack into the database, sorting it out on the device is "easy". But, for people without the knowledge or desire to do this, it needs to be solved by Kobo.

It also happens that I received an email from Kobo support this week about this. This had instruction for fixing this (empty the duplicate shelves, do a sync, give them a list of shelf names) and what would happen then. From that email and a followup to answer a question I asked, they will be deleting the duplicated shelves on the server. I am expecting to be asked to do another sync once they have done this.

Quote:

Of course, I've also caught Kobo lying to me on multiple issues - like changing book prices and unwarranted DRM - so I have reasons not to take their statements as gospel.

You asked them the price of a book, they told you one and then charged you something different? Or did you find a book on their site and the price changed when you logged in to purchase it?

What does "unwarranted DRM" mean? I have seen a couple of cases where an author specified no DRM, but Kobo applied it for the kepubs. Is that it? If so, the times I saw it, the author complained and Kobo fixed it.

That's not lying. That's just a few honest mistakes. And something completely different to an employee of Kobo personally stating something in wording.

When an employee tells me that the publisher deliberately applied DRM to the very book they're advertising as the start of their "no more DRM" initiative, or that prices are changing (and taxes are getting added in error) when I log in because my IP's location and physical location don't match, despite another account in the household not showing that behavior... yeah, I call that lying. Especially when the latter stops after I blow the whistle on 'em in public and other people find out it's been happening to them, too...

Did a factory reset. Interestingly enough (and this may happen for everybody, I don't know), right after the reset, my shelves area was completely empty (yes, I did a synch). Then, when I went to add a shelf once I started going through my books--bam, my shelves appeared.

Unfortunately, they appeared still with the duplicates. But also something interesting there now, too.

I used the wrench to choose the option to only show books on my ereader. When I went into the offending multiple shelves to delete books and empty them--surprise! The ereader tells me they're already empty.

Also related--if I have shelves that previously contained kepubs, there's something else interesting. If I'm viewing my list of shelves, it will say something like "6 books". But when I actually go into the shelf itself, the number of books in it only lists the ones on my ereader (which makes it the accurate count).

So obviously, whatever books are still "stuck" in the shelves are the ones I've purchased from Kobo, not anything I've sideloaded myself.

So obviously, whatever books are still "stuck" in the shelves are the ones I've purchased from Kobo, not anything I've sideloaded myself.

That should make it a snap to clear up, then. I did this with my iOS Kobo app and Kobo Touch, but it should work with any of the other Kobo apps...

1. Pull any sideloaded content from your device, to make things easier.
2. Go to your Kobo app, let it sync, and delete all the shelves.
3. Sync the app.
4. Sync the device.
5. Sync the app.
6. Delete any new shelves that appeared in the app.
7. Repeat steps 3-6 until you have nothing to do in step 6.
8. Create new shelves and populate them. Doesn't matter whether you do this from the app or device, but sync the new shelves "up" before syncing the other platform to pull them down.

Note that you're not doing anything on the device during this process except syncing it.

Ad I recall, the only shelf I wasn't able to kill that way was Shortlist, which is baked in. Even so, I got rid of its duplicates.

The shorter process, if you don't have an app to work with, is this:

1. Connect your Touch to your computer.
2. Browse to the .kobo directory and rename the .sqlite database to a different extension, so the reader can't find it.
3. Disconnect and sync.

That should generate one fresh, clean copy of your kepub database with one set of shelves.

That should make it a snap to clear up, then. I did this with my iOS Kobo app and Kobo Touch, but it should work with any of the other Kobo apps...

1. Pull any sideloaded content from your device, to make things easier.
2. Go to your Kobo app, let it sync, and delete all the shelves.
3. Sync the app.
4. Sync the device.
5. Sync the app.
6. Delete any new shelves that appeared in the app.
7. Repeat steps 3-6 until you have nothing to do in step 6.
8. Create new shelves and populate them. Doesn't matter whether you do this from the app or device, but sync the new shelves "up" before syncing the other platform to pull them down.

You missed a step: Buy an iPad or Android device. CorpseGoddess has stated at the beginning of the thread that she doesn't have one.

Quote:

Note that you're not doing anything on the device during this process except syncing it.

Ad I recall, the only shelf I wasn't able to kill that way was Shortlist, which is baked in. Even so, I got rid of its duplicates.

The shorter process, if you don't have an app to work with, is this:

1. Connect your Touch to your computer.
2. Browse to the .kobo directory and rename the .sqlite database to a different extension, so the reader can't find it.
3. Disconnect and sync.

That should generate one fresh, clean copy of your kepub database with one set of shelves.

As CorpseGoddess has just done a factory reset, this is effectively where she started today. The duplicated shelves are on the server and are put onto the device during the sync. If the shelves are empty at the time, they don't show up. But, adding a book to one, adds them to all and suddenly the duplicates appear. Plus the safer way to do this is to logoff on the device. This will create the fresh database and restart the device safely.

I know at one point with firmware 2.3.x I had seen multiple shelves, and in many cases they just "partially" contained a book, a kepub in each case. This was a kEpub that I owned but had removed from my library view on the web site, so opening it would result in the content being treated like a preview.

FWIW, if anyone is keeping track of these things, the following is what happened to me regarding duplicate shelves:

I synced and thus updated to firmware 2.4 on Feb.21, 2013 (my last previous sync was mid-November 2012, both syncs were via desktop) and ended up with duplicate shelves that behaved in the way that Corpesgodess described. I logged off on the device and synced it (over wifi.) This changed nothing. The duplicates remained and behaved as they had before logging off. I then did a factory reset. I also uninstalled the desktop app and reinstalled it before I connected my device to sync it. Synced my device and shelves were returned to their pre-duplicate state with shelved items intact. I am able to add and delete items to the shelves normally and am able to create, edit, and delete shelves normally as well.

Hope this information is useful.

Edit: factory reset done March 2, 2013, didn't remove items from shelves before I did the above.

I know at one point with firmware 2.3.x I had seen multiple shelves, and in many cases they just "partially" contained a book, a kepub in each case. This was a kEpub that I owned but had removed from my library view on the web site, so opening it would result in the content being treated like a preview.

Just to clarify--before I did this reset, I had "deleted" (but not "trashed") all my books in my account on Kobobooks. So there shouldn't have been anything for it to pull from and put on my reader--technically.

You missed a step: Buy an iPad or Android device. CorpseGoddess has stated at the beginning of the thread that she doesn't have one.

The desktop software ought to be able to do the same thing.

Quote:

Originally Posted by davidfor

The duplicated shelves are on the server and are put onto the device during the sync. If the shelves are empty at the time, they don't show up. But, adding a book to one, adds them to all and suddenly the duplicates appear.

This is exactly why having a second application - iOS, Android, desktop, whatever - that can manipulate your shelves is so useful; it apparently affects the information stored on the server more directly than the device-to-sqlite-to-server path does.

The desktop software has no concept of shelves. Its database does have the shelf details, but you can't manipulate them from the application.

Quote:

This is exactly why having a second application - iOS, Android, desktop, whatever - that can manipulate your shelves is so useful;

Except of course when the server bug caused 2000 shelves to suddenly appear on both my devices.

Quote:

it apparently affects the information stored on the server more directly than the device-to-sqlite-to-server path does.

That is because deleting the database is the wrong thing to do. That doesn't tell the server what to with the shelves it knows about, including the duplicates. In fact, as far as it is concerned, it should send them back to the device at the next sync. The correct thing to do, if you are manipulating the database, is to do what the device does when you delete a shelf. It marks the shelf as deleted (sets the value of "_IsDeleted" to "true" and set "LastModified" to the current timestamp) and then do a sync. That should tell the server to not send the shelves down again.