6.7 KiB
Troubleshooting Common Libation Errors
SQLite Error 10: 'disk I/O error'.
There are two possible causes of this error.
- Your hard disk is full. Check that you have space on the storage device containing your Libation Files (where the LibationContext.db and log files are). If that device still has available space, move on to #2 below.
- The database's journaling mode is incompatible with your environment. Change the journaling mode to
DELETEby one of two methods.- Run hangover and execute the following command in the "Database" tab:
PRAGMA journal_mode=DELETE - run this command in your terminal:
sqlite3 "path/to/libation/files/LibationContext.db" "PRAGMA journal_mode=DELETE;"
- Run hangover and execute the following command in the "Database" tab:
How to run the Hangover App
When troubleshooting, you may be asked to run 'Hangover'. Hangover is a debugging app to help diagnose and solve some problems with Libation. It is located alongside the Libation app (though not included in the docker container).
Platform-specific steps: Windows · macOS · Linux
Windows
Hangover (Windows)
Hangover.exe is located in the folder containing Libation.exe. Double-click it to run it.
macOS
Hangover (macOS)
Hangover is located inside the app bundle. Either:
- From a terminal, run this command:
open /Applications/Libation.app --args hangover - Run it from within the app bundle.
- In finder, right-click the Libation app bundle and "Show Package Contents"
- Open folders "Contents" > "MacOS"
- Find the file named "Hangover" and double-click it to run it.
App won't start
App won't start (for example the Dock icon appears and bounces but no window opens, or ~/Library/Application Support/Libation is never created): macOS may be blocking or mishandling launch of the app bundle. That can happen with strict security settings, quarantine flags on the download, or unsupported macOS setups (for example hardware past Apple's support window with tools such as OpenCore Legacy Patcher). Symptoms can include double-clicking Libation doing nothing useful, Activity Monitor showing almost no CPU use, no logs yet, and open /Applications/Libation.app --args hangover failing with error -128 (_LSOpenURLsWithCompletionHandler). Libation is intended for Apple-supported macOS releases in Install on MacOS; unofficial upgrades are not supported, and the steps below are community-tested workarounds.
Try the following in order:
- Clear extended attributes (including quarantine) on the installed app, then try opening Libation again from Applications:
xattr -cr /Applications/Libation.app - Run the main executable from Terminal (same idea as Running LibationCli, but for the GUI). This bypasses some Launch Services paths and has resolved "won't start" reports where
openfailed (for example with error -128):To capture any output to a file (it may be empty):/Applications/Libation.app/Contents/MacOS/Libation/Applications/Libation.app/Contents/MacOS/Libation > ~/Desktop/libation_debug.log 2>&1 - If you still need Hangover and
open /Applications/Libation.app --args hangoverfails, run Hangover from the bundle using Finder (see option 2 under Hangover above). - Confirm you installed the correct architecture (Install on MacOS): arm64 for Apple Silicon, x64 for Intel.
- Crash logs: open Console (Applications, then Utilities), or check ~/Library/Logs/DiagnosticReports for recent Libation crash reports if the process exits abruptly.
Linux
Hangover (Linux)
The installer creates shortcuts for libation, libationcli, and hangover. From a terminal, run hangover.
UI too small
If the Linux UI is tiny, try AVALONIA_GLOBAL_SCALE_FACTOR=2 libation (tune the number); see #634.
In-app Audible login or "add account" fails
Embedded sign-in uses WebKit2GTK (libwebkit2gtk). If that native stack is missing, install the packages for your distro or use 'external browser' sign-in in Libation's import/library settings. Details: Install on Linux (section: Runtime dependencies (Audible sign-in)).
Very long paths or encrypted home directory
On some Linux setups the home directory or default temp area sits on a stacked or encrypted filesystem. That often means a shorter usable path length than a plain ext4 mount. Together with a deep Books folder or long paths from naming templates, Libation can fail during or after decryption when moving finished files into the library.
What to try: In Settings -> Download/Decrypt, set Books and the in-progress / temporary location (the folder used while files are downloaded and decrypted) to shorter paths on a normal, unencrypted volume if you can—for example an external drive mounted without an extra encryption layer. A user on Mint described this approach in GitHub issue #1199 (that thread also mentions MissingMethodException, which usually indicates a mismatched or partial install rather than path length alone).
Linux Snap and SQLite write failures
Symptoms include a crash on startup that mentions LibationContext.db under a path like ~/snap/libation/<number>/.local/share/Libation/.
-
Permissions - The whole Libation data directory must be writable by your user, including
LibationContext.db,LibationContext.db-wal, andLibationContext.db-shmwhen they exist. Fix ownership withchownif needed. -
Stale
LibationFilesafter a Snap refresh - Snap may install a new revision folder (new<number>) whileappsettings.jsoninside the new folder still pointsLibationFilesat the previous revision path. Libation then targets the old path while the app runs from the new revision, which often surfaces as a read-only or migration failure even when permissions on both trees look fine.Fix: edit
appsettings.jsonin the active revision (for example under~/snap/libation/current/...) so theLibationFilesvalue uses the same.../snap/libation/<number>/...as that file, or useLIBATION_FILES_DIR. Step-by-step context: Install on Linux - Snap and issue #1776. -
Non-Snap build - If you still suspect Snap confinement after the above, try a
.deb/.rpm/ AppImage build from Releases to compare behavior.