Troubleshooting
FAQ

Frequently Asked Questions

đźš«

Remember to use the new Docker Central Repo! (opens in a new tab) The old repo kizaing/kavita is no longer supported!

Q. I really like Kavita, but can it mirror or just use my folder structure?

A. No, Kavita uses filenames and internal metadata for parsing and is not designed to use folder structure. Please don't ask for this feature, it will never be implemented. If this is important to you, Ubooquity (opens in a new tab) may be a better choice, as it offers this feature.

Q. I'm seeing database is locked errors in my logs

A. This can happen in some configurations. An easy solution is to turn on WAL mode, which Kavita supports out of the box. To do this, open your sqlite file (after stopping Kavita) and run PRAGMA journal_mode=WAL;. An easy tool to do this is DB Browser for SQLite. (opens in a new tab)

For CLI users you can run the command below if your platform has the needed sqlite3 tools installed.

sqlite3 kavita.db 'PRAGMA journal_mode=WAL;'

Q. I'm running on macOS Monterey and I get error 403 when trying to load the web app.

As of macOS Monterey (12.xx) some systems might have the AirPlay service running on port 5000. You'll need to pick a different port for Kavita to run under.

Q. Is there an app? I don't want to use the website.

Kavita does not yet offer mobile apps, however, you can "Add to Home screen" our website, which will create an icon on your mobile device and launch the site in fullscreen mode. If that doesn't work for you, you can use a supported external reader, found here (opens in a new tab).

Q. Sometimes I add ComicInfo to the first archive, but Kavita doesn't show it at a series level. Is this a bug?

A. There are 2 things to keep in mind. If the underlying file Created/LastModified hasn't been changed since our last scan, we skip it to save time and resources. A series scan will always scan or a library-forced scan will work. Sometimes it's best to rename the file once and then back. In addition, if the file is not an archive starting with C, like cbz, cbr, etc, then it will not be checked for ComicInfo metadata.

Q. How exactly does Estimated Reading Time work?

A. Kavita calculates the reading time using two different methods. The calculated reading time may not always reflect the actual reading time but should be sufficient in providing a general sense of how long it will take to read or finish off a series. Note: Kavita uses characters instead of words to account for languages that don't have spaces, with the assumption of 5 characters per word.

  • For items where we can count words (epub), we use a spread of 10,260 to 30,000 words per hour to calculate min, max, and average.
  • For files that don't have countable words, we use a spread of 2.75 to 3.33 minutes per page. This works in most cases but might fail for files webtoons, which have a long strip format.

Q. Does Kavita collect any data on me?

A. By default, Kavita will collect stats on your installation. This will run after 24 hours to give you time to opt-out. You can opt-out at any time by turning off "Send Data" from the Admin Dashboard. All data is anonymized and contains no information about your filenames or IP. The Kavita team actively uses this data to help design the UX and plan enhancements. If you choose to remain opted-in, thank you. It helps in the design and planning effort. You can view the code at any time here (opens in a new tab). Here is a record (opens in a new tab) from our stats database:

{
    "InstallId":"0cf3ad15",
    "LastUpdate":"2021-08-21T00:00:11.385Z",
    "Os":"Linux 5.4.0-80-generic #90~18.04.1-Ubuntu SMP Tue Jul 13 19:40:02 UTC 2021",
    "KavitaVersion":"0.4.3.39",
    "DotNetVersion":"5.0.9",
    "IsDocker":true,
    "NumOfCores":4,
    "HasBookmarks" true,
    "NumberOfLibraries": 4,
    "NumberOfReadingLIsts": 2,
    "NumberOfCollections": 0,
    "TotalFiles": 10351
    "ActiveTheme": "Dark",
    "ReadingMode": "Webtoon"
}

Q. Kavita doesn't seem to run/generate covers / generate black and white covers on my computer.

A. Kavita uses NetVips for cover generation and thus requires SSE4.2 instruction set. Generally, Core i3/i5/i7/i9 support them, whereas Pentium and Celeron CPUs do not. CPUs from 2011 onwards should support SSE4.2. You can read more about it here (opens in a new tab). If you fall in this category and still want to use Kavita, you can delete the libvips.dll or libvips.so and install it (libvips-tools for Linux) via your system manager (version must < v8.10.6) or compile it yourself, see this issue here (opens in a new tab).

Q. What is the NetVips dependency and what does it mean if I can't run it?

A. Kavita uses the NetVips package (opens in a new tab) to handle all the image processing tasks. That means if your CPU isn't supported you'll either outright crash or have bad-looking black & white images.

If you have an Intel CPU, you can check if your device is supported by looking in Intel's ARC database (opens in a new tab) for your CPU. "Instruction Set Extensions" should list SSE4.2

AMD users can check wikipedia for their architecture (opens in a new tab) to see if there is support.

If you are running on an older device that doesn't meet the requirement you can try the steps outlined here: Github Ticket (opens in a new tab)

Q. Is there a way to use Kavita without Authentication?

A. No, this type of functionality is not supported and there are no plans. Kavita offers Refresh Tokens which should keep you authenticated without having to manually log in. You can also use your apiKey to auto-login to your account via url (url/login?apiKey=XXX).

Q. Can I use Kavita with a Google Drive mount?

A. Yes, you can use Plexdrive or rclone. Although it is not officially supported. Rclone requires a specific configuration to cache files locally and works better with Kavita. Here is a user-provided configuration that works well:

rclone mount [your mount name]: [local path to be mounted] \
    --no-checksum \
    --use-server-modtime \
    --no-gzip-encoding \
    --no-seek \
    --allow-other \
    --allow-non-empty \
    --cache-read-retries 15 \
    --cache-db-purge \
    --buffer-size 512M \
    --dir-cache-time 500h \
    --timeout 500h \
    --vfs-cache-max-age 500h \
    --vfs-read-ahead 1G \
    --vfs-read-chunk-size 32M \
    --vfs-cache-max-size 25G \
    --cache-dir=[your folder path here] \
    --vfs-cache-poll-interval 10s \
    --poll-interval 10s \
    --attr-timeout 20s \
    --vfs-cache-mode full