Your ePub Is Fine. Kobo Disagrees. Blame Adobe

Hacker News Top News

Summary

A blog post details how ebooks that pass the strict epubcheck validation fail on Kobo devices due to Adobe's outdated RMSDK rendering engine, highlighting compatibility issues with the DRM-focused Adobe Digital Editions.

No content available
Original Article
View Cached Full Text

Cached at: 06/15/26, 12:56 AM

# Your EPUB Is Fine. Kobo Disagrees. Blame Adobe - André Klein Dot Net Source: [https://andreklein.net/your-epub-is-fine-kobo-disagrees-blame-adobe/](https://andreklein.net/your-epub-is-fine-kobo-disagrees-blame-adobe/) [![](https://andreklein.net/wp-content/uploads/2026/06/gandalf-1024x625.jpg)](https://andreklein.net/wp-content/uploads/2026/06/gandalf.jpg) “You shall not pass\!” \[drop\_cap\]A\[/drop\_cap\]dobe isn’t exactly a beloved company these days\. People begrudgingly use their stuff, because the Creative Suite is an industry standard \(read: monopoly\) or there are simply no worthwhile alternatives, not because anyone is genuinely excited about these tools\. I’m happy to report that I \(mostly\) make do without Adobeware these days \(shoutout to Photopea\), and yet, my disdain of Adobe just reached a completely new level\. Let me explain\. A while back I published a new book\. As always I gave readers direct access to DRM\-free`EPUB`files, which go through a gauntlet of processes until they pass all`epubcheck`… err … checks\. If you’re not familiar with`epubcheck`, it is basically the gold standard for well\-formed ebooks\. It can be very annoying at first, because it’s more pedantic than a nun on Ash Wednesday\. If your`manifest`doesn’t meticulously account for every snippet and image in your book, your epub shall not pass\. If you use html elements out of order, if your document diverges in the slightest from the holy set of rules decreed by the International Digital Publishing Forum, you won’t pass\. So yeah\. Getting an`epub`to 100%`epubcheck`is no small feat for beginners\. When I started out, I dreaded the moment when I hit the`validate`button on my finished book after months of work, because it would*always*find something to cry about\. These days however, I’m a big fan of`epubcheck`\. Why? It’s the closest thing us publisher\-types have to a ‘type\-linter’ or formal testing suite\. In other words, if your book passes`epubcheck`you are guaranteed that the book will work on any EPUB\-compatible reader or app\. Or at least, that’s the idea\. I recently received a message from one of my readers that my new book, which passed`epubcheck`ruleset 3\.3 with flying colors, was “corrupted”\. Backwards compatibility perhaps? So I gave them an EPUB2 version, also fully rule\-compliant\. And yet the same issue occurred\. They told me the book wouldn’t open on any of their Kobo devices from various generations\. So what do you do when the pedantic gold standard of`epubcheck`says your book is fine, when it works without issue on Amazon Kindle, Apple Books, Thorium and everywhere else and yet Kobo says it’s “corrupted”? I dug into this matter and found out that Kobo uses RMSDK, “Reader Mobile Software Development Kit”, Adobe’s proprietary ebook rendering engine\. Perhaps you see where this is going … RMSDK is the guts of*Adobe Digital Editions*\(that bloated pinnacle of software that is 80% about DRM, 20% about the reading experience\), the engine on various Kobo devices and older Sony/Nook devices\. Originally built around 2010 \(\!\) for EPUB2, it was lightly updated for EPUB3 but never modernized\. While that realization didn’t solve the issue for me \(`epubcheck`still said “yay” while Kobo said “nay”\), it at least gave me a path towards debugging\. And so I threw my book into Adobe Digital Editions\. As expected, it failed to load\. But how\! Without an error message, without the slightest whimper\. The book just wouldn’t load\. The only sign that it had even tried was that when loading it again ADE told me: “you can’t import that book, you already added it”\. While showing a white screen\. Classic Adobe\. So I started ripping my book apart, creating a dozen different variations, always making sure that`epubcheck`still passed\. I rearranged folder structures, gutted metadata, nuked language attributes, generated epubs with fresh UUIDs, flattened directories, renamed extensions, rebuilt the zip from scratch a dozen times, and shook up my manifest\. And it failed\. And failed\. And failed\. While I had almost given up it occurred to me to disable the stylesheet\. And eureka, suddenly it loaded\! Once the stylesheet was identified as the source of my woes, I could finally drill down to find which specific line was causing the issue\. After creating a dozen more variations with different subsets of my stylesheet I eventually identified the culprit\. It was this line: ``` .copyright img { max-width: min(150px, 30vw); } ``` Once I changed it to the more old fashioned`max\-width: 150px;`ADE opened it just fine\. But what is the problem here? The above code is perfectly valid CSS level 4, it’s just not supported by RMSDK, because its CSS parser is frozen in approximately 2013 — no flexbox, no grid, no math functions, no custom properties\. Just good old float, bad font handling, and silent crashes when it sees anything it doesn’t recognize\. So why didn’t epubcheck catch it? Epubcheck does basic CSS checking of course, but it can’t validate CSS against a renderer which is fundamentally broken\! So there you have it\. It’s the year 2026\. Thanks to the horrendous RMSDK which Kobo decided to use as their backbone for all book rendering \(probably for DRM reasons\), a single line of perfectly valid CSS turns a perfectly valid EPUB file into a “corrupted file” on Kobo and just drops the whole book\. No clear error message, no fallback\. Just a massive fail\. I’ve since published a new version so none of my readers have to ever stumble over this issue again\. In a perfect world, RMSDK would just stop living in the CSS stone\-ages or at least provide*some*kind of error handling instead of dropping the whole book, but I’m not holding my breath\. The digital publishing world is more obsessed with*restricting*access than giving users the best possible reading experience\. And until that changes, which it won’t, if you want to make sure that your book is Kobo\-compatible, relying on`epubcheck`is unfortunately not enough\. Gotta chuck it into Adobe’s woodchipper first\. Either it will work, or it will fail silently\. In which case, you probably used some forbidden new\-fangled CSS\. Anyway, just throwing this out there as a post\-mortem, in case anyone else is stumbling over it\. EPUB is an amazing open standard for ebooks, and yet so many implementations of it are just fundamentally flawed, all in the name of keeping IP lawyers happy\.

Similar Articles

The Best E-Readers of 2026: Kobo, Kindle

Wired

WIRED's guide to the best e-readers of 2026 compares top models from Kobo, Kindle, and Boox, highlighting features like color screens, page-turn buttons, and Android-based experiences.

DIY Kobo annotation backup

Lobsters Hottest

A guide to backing up annotations from Kobo e-reader for borrowed books using a script that combines sqlite and ImageMagick.

@wsl8297: Want to turn ebooks or documents into audiobooks? Many tools sound too robotic or lack subtitle sync, leaving you frustrated. Then I found the open-source project Abogen: it supports ePub, PDF, plain text, etc., one-click conversion to high-quality audio with auto-generated synchronized subtitles. It uses Kokoro voice at its core…

X AI KOLs Timeline

Abogen is an open-source tool that can convert documents like ePub and PDF into high-quality audio with one click, automatically generating synchronized subtitles. It supports a voice mixer and multiple deployment methods.

@Honcia13: The open-source tool that turns ebooks into audiobooks in seconds is here—Audiblez! Just drop in an EPUB and within minutes it outputs a high-quality M4B audiobook! It uses the Kokoro voice model with only 82M parameters, but the listening experience is incredibly natural. Highlights: Running Animal Farm on a T4 GPU takes only 5 minutes. Supports Chinese, English, and more…

X AI KOLs Timeline

Audiblez is an open-source tool that quickly converts EPUB ebooks into high-quality M4B audiobooks. It uses the Kokoro-82M voice model, supports multiple languages and a graphical interface, and can be installed with a single pip command.

@Jolyne_AI: Found another e-book reader on GitHub that combines aesthetics and functionality: Foliate, making reading smoother, more focused, and more efficient. Not only does it have a clean and pleasing interface, but it also integrates common functions like dictionary lookup, annotation, and text-to-speech into the same reading context, so you don't need to switch between tools while reading. GitHub: http://githu…

X AI KOLs Timeline

Foliate is an open-source e-book reader with a clean interface, integrating dictionary lookup, annotation, text-to-speech, and other features. It supports EPUB, PDF, Kindle, and other formats, and can be installed on Linux via Flatpak or Snap.