[Bug]: UI frozen after going from the details of book 4 to book 3 in a specific series #2977

Closed
opened 2026-04-25 00:12:40 +02:00 by adam · 14 comments
Owner

Originally created by @Phantomwise on GitHub (Aug 30, 2025).

What happened?

Hi, here's a weird one:

  • I added books 1-8 of the Harry Fox series by Andrew Clawson, in order.
  • In the home view, I can open the details of book 1, then click the left arrow to go to book 2, and onwards until book 8. I can also open the details of book 8, then click the right arrow to go to book 7 then 6 then 5 then 4. I can do the same to go from book 3 to 2 to 1.
  • However, when I try to go from book 4 to book 3, it kinda freezes the UI. I still see the details of book 4, I can scroll up and down in it, but none of the buttons work. I can't even exit the book details window. There's no "socket disconnected" popup. It doesn't crash the container.
  • I can open the details of book 3 and 4 directly without issue, the problem only happens when I specifically go from book 4 to book 3. Book 3 to 4 is completely fine.
  • If I rescan book 3 and book 4 it doesn't help.
  • Every time it happens I need to manually refresh the page to get it working again. Then I try again and the same thing happens.
  • If I go to the book series view, the same thing happens: I can go from one book to another except from book 4 to book 3.

What did you expect to happen?

Being able to go from book 4 to book 3.

Steps to reproduce the issue

¯_(ツ)_/¯

Audiobookshelf version

v2.29.0

How are you running audiobookshelf?

Docker

What OS is your Audiobookshelf server hosted from?

Other (list in "Additional Notes" box)

If the issue is being seen in the UI, what browsers are you seeing the problem on?

Firefox

Logs

# Too long for this field so I added the file as an attachment. Relevant logs start at 2025-08-30 14:13

# Here are the last 100 lines or so:
{"timestamp":"2025-08-30 14:19:42.060","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:42.061","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket 5FDISAzJfOdhAU56AAAh disconnected from client \"phantomwise\" after 75633ms (Reason: transport close)","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:19:43.128","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 0 size: 0","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.134","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.425","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 1 size: 38171","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.429","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 1 size: 38171","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.435","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io s7YYI2QW-Hx0BGDIAAAj","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:19:43.446","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.471","source":"LibraryItem.js:372","message":"Loaded 10 of 10 items for \"Continue Listening/Reading\" in 0.04s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.486","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.878","source":"LibraryItem.js:389","message":"Loaded 10 of 11 items for \"Continue Series\" in 0.41s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.926","source":"LibraryItem.js:419","message":"Loaded 10 of 441 items for \"Recently Added\" in 0.05s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:43.948","source":"LibraryItem.js:435","message":"Loaded 5 of 115 series for \"Recent Series\" in 0.02s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:44.042","source":"LibraryItem.js:450","message":"Loaded 10 of 157 items for \"Discover\" in 0.09s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:44.065","source":"LibraryItem.js:483","message":"Loaded 10 of 98 items for \"Listen/Read Again\" in 0.02s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:44.074","source":"LibraryItem.js:499","message":"Loaded 10 of 194 authors for \"Newest Authors\" in 0.01s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:44.074","source":"LibraryItem.js:502","message":"Loaded 7 personalized shelves in 0.64s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:44.076","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:44.076","source":"ApiCacheManager.js:62","message":"[ApiCacheManager] Caching with 1800000 ms TTL","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:45.726","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 3 size: 234472","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:45.726","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:46.161","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 3 size: 234472","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:46.164","source":"libraryItemsBookFilters.js:363","message":"[LibraryItemsBookFilters] countCacheKey: {\"where\":{\"0\":{}},\"distinct\":true,\"attributes\":null,\"replacements\":{},\"include\":{\"0\":{\"model\":\"libraryItem\",\"required\":true,\"where\":{\"libraryId\":\"77605977-32fe-497d-8c15-9cb17eeb35b0\"},\"include\":{\"0\":{\"model\":\"feed\",\"required\":false,\"separate\":true}}},\"1\":{\"model\":\"bookSeries\",\"attributes\":{\"0\":\"id\",\"1\":\"seriesId\",\"2\":\"sequence\",\"3\":\"createdAt\"},\"include\":{\"model\":\"series\",\"attributes\":{\"0\":\"id\",\"1\":\"name\",\"2\":\"nameIgnorePrefix\"}},\"order\":{\"0\":{\"0\":\"createdAt\",\"1\":\"ASC\"}},\"separate\":true},\"2\":{\"model\":\"bookAuthor\",\"attributes\":{\"0\":\"authorId\",\"1\":\"createdAt\"},\"include\":{\"model\":\"author\",\"attributes\":{\"0\":\"id\",\"1\":\"name\"}},\"order\":{\"0\":{\"0\":\"createdAt\",\"1\":\"ASC\"}},\"separate\":true}},\"order\":{\"0\":{\"0\":{\"val\":\"`libraryItem`.`authorNamesLastFirst` COLLATE NOCASE\"},\"1\":\"ASC\"},\"1\":{\"0\":{\"val\":\"`libraryItem`.`titleIgnorePrefix` COLLATE NOCASE\"},\"1\":\"ASC\"}},\"subQuery\":false}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:46.212","source":"LibraryItem.js:297","message":"Loaded 48 of 441 items for libary page in 0.05s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:46.216","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?sort=media.metadata.authorNameLF&desc=0&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:48.261","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:48.262","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:48.588","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:48.588","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:53.824","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:53.824","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:53.908","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:53.935","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:54.128","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 359534","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:54.154","source":"LibraryItem.js:297","message":"Loaded 8 of 8 items for libary page in 0.02s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:19:54.156","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.520","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"size\" changed from \"4165\" to \"5214\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"mtimeMs\" changed from \"1756556077956\" to \"1756556210158\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"ctimeMs\" changed from \"1756556077956\" to \"1756556210158\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"birthtimeMs\" changed from \"1756556077956\" to \"1756556210158\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library item \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" changed: [size,lastScan]","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.685","source":"ApiCacheManager.js:20","message":"[ApiCacheManager] libraryItem.afterUpdate: Clearing cache","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.710","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English)\" Getting metadata with precedence [folderStructure, audioMetatags, nfoFile, txtFiles, opfFile, absMetadata]","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.710","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": setChapters: Using embedded chapters in first audio file /audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].m4b","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:10.711","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Found metadata file \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/metadata.json\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:13.907","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:13.908","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket s7YYI2QW-Hx0BGDIAAAj disconnected from client \"phantomwise\" after 30473ms (Reason: transport close)","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:20:14.903","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 0 size: 0","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:14.908","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:14.924","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 1 size: 38171","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:14.952","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:15.215","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io 7JC729fWMnKMKCQ_AAAl","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:20:15.230","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 2 size: 38925","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:15.238","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 2 size: 38925","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:15.245","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:15.269","source":"LibraryItem.js:297","message":"Loaded 8 of 8 items for libary page in 0.02s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:15.269","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:15.387","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:23.646","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English)\" Getting metadata with precedence [folderStructure, audioMetatags, nfoFile, txtFiles, opfFile, absMetadata]","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:23.646","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": setChapters: Using embedded chapters in first audio file /audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].m4b","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:23.647","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Found metadata file \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/metadata.json\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:20:23.647","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library item is up-to-date","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:37.647","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:37.648","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket 7JC729fWMnKMKCQ_AAAl disconnected from client \"phantomwise\" after 142433ms (Reason: transport close)","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:22:38.512","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.513","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.533","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.533","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.760","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.761","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.805","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io k9RcnIysU1GCpZzKAAAn","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:22:38.824","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.829","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:22:38.829","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:23.656","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:23.657","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket k9RcnIysU1GCpZzKAAAn disconnected from client \"phantomwise\" after 284851ms (Reason: transport close)","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:27:24.735","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:24.735","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:24.750","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:24.751","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:24.976","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:24.976","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:25.011","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io lweDeCCaOnixIlz9AAAp","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:27:25.036","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:25.036","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:27:25.060","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:24.218","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:24.218","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:24.573","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:24.772","source":"LibraryItem.js:372","message":"Loaded 10 of 10 items for \"Continue Listening/Reading\" in 0.20s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:25.861","source":"LibraryItem.js:389","message":"Loaded 10 of 11 items for \"Continue Series\" in 1.09s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:27.667","source":"LibraryItem.js:419","message":"Loaded 10 of 441 items for \"Recently Added\" in 1.81s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:27.723","source":"LibraryItem.js:435","message":"Loaded 5 of 115 series for \"Recent Series\" in 0.06s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:28.101","source":"LibraryItem.js:450","message":"Loaded 10 of 157 items for \"Discover\" in 0.38s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:28.264","source":"LibraryItem.js:483","message":"Loaded 10 of 98 items for \"Listen/Read Again\" in 0.16s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:28.398","source":"LibraryItem.js:499","message":"Loaded 10 of 194 authors for \"Newest Authors\" in 0.13s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:28.398","source":"LibraryItem.js:502","message":"Loaded 7 personalized shelves in 3.82s","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:28.400","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:38:28.400","source":"ApiCacheManager.js:62","message":"[ApiCacheManager] Caching with 1800000 ms TTL","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:48.316","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:48.316","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket lweDeCCaOnixIlz9AAAp disconnected from client \"phantomwise\" after 743305ms (Reason: transport close)","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:39:49.292","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:49.292","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:49.533","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:49.533","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:49.536","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:49.536","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:49.541","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io vUEWqt8KZBRbmB-tAAAr","levelName":"INFO","level":2}
{"timestamp":"2025-08-30 14:39:50.314","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:51.520","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:51.520","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:51.838","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:39:53.329","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/narrators\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:40:01.133","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 6 size: 293646","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:40:01.134","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:40:01.492","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 6 size: 293646","levelName":"DEBUG","level":1}
{"timestamp":"2025-08-30 14:40:01.493","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1}

Additional Notes

Server running in a docker container on DSM.

No weird filenames with unusual characters:

├── Andrew Clawson - Harry Fox - 3 - The Celtic Quest (English) {John Pirhalla} [B0BQ5D4H6Y]
│   ├── metadata.json
│   ├── The Celtic Quest_ Harry Fox, Book 3 [B0BQ5D4H6Y].cue
│   ├── The Celtic Quest_ Harry Fox, Book 3 [B0BQ5D4H6Y].jpg
│   └── The Celtic Quest_ Harry Fox, Book 3 [B0BQ5D4H6Y].m4b
├── Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]
│   ├── metadata.json
│   ├── The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].cue
│   ├── The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].jpg
│   └── The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].m4b

No super deep nesting, they're in my library root folder for now.

2025-08-30.txt

Originally created by @Phantomwise on GitHub (Aug 30, 2025). ### What happened? Hi, here's a weird one: - I added books 1-8 of the Harry Fox series by Andrew Clawson, in order. - In the home view, I can open the details of book 1, then click the left arrow to go to book 2, and onwards until book 8. I can also open the details of book 8, then click the right arrow to go to book 7 then 6 then 5 then 4. I can do the same to go from book 3 to 2 to 1. - However, when I try to go from book 4 to book 3, it kinda freezes the UI. I still see the details of book 4, I can scroll up and down in it, but none of the buttons work. I can't even exit the book details window. There's no "socket disconnected" popup. It doesn't crash the container. - I can open the details of book 3 and 4 directly without issue, the problem only happens when I specifically go from book 4 to book 3. Book 3 to 4 is completely fine. - If I rescan book 3 and book 4 it doesn't help. - Every time it happens I need to manually refresh the page to get it working again. Then I try again and the same thing happens. - If I go to the book series view, the same thing happens: I can go from one book to another except from book 4 to book 3. ### What did you expect to happen? Being able to go from book 4 to book 3. ### Steps to reproduce the issue ¯\_(ツ)_/¯ ### Audiobookshelf version v2.29.0 ### How are you running audiobookshelf? Docker ### What OS is your Audiobookshelf server hosted from? Other (list in "Additional Notes" box) ### If the issue is being seen in the UI, what browsers are you seeing the problem on? Firefox ### Logs ```shell # Too long for this field so I added the file as an attachment. Relevant logs start at 2025-08-30 14:13 # Here are the last 100 lines or so: {"timestamp":"2025-08-30 14:19:42.060","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:42.061","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket 5FDISAzJfOdhAU56AAAh disconnected from client \"phantomwise\" after 75633ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:19:43.128","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 0 size: 0","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.134","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.425","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 1 size: 38171","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.429","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 1 size: 38171","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.435","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io s7YYI2QW-Hx0BGDIAAAj","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:19:43.446","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.471","source":"LibraryItem.js:372","message":"Loaded 10 of 10 items for \"Continue Listening/Reading\" in 0.04s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.486","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.878","source":"LibraryItem.js:389","message":"Loaded 10 of 11 items for \"Continue Series\" in 0.41s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.926","source":"LibraryItem.js:419","message":"Loaded 10 of 441 items for \"Recently Added\" in 0.05s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:43.948","source":"LibraryItem.js:435","message":"Loaded 5 of 115 series for \"Recent Series\" in 0.02s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:44.042","source":"LibraryItem.js:450","message":"Loaded 10 of 157 items for \"Discover\" in 0.09s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:44.065","source":"LibraryItem.js:483","message":"Loaded 10 of 98 items for \"Listen/Read Again\" in 0.02s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:44.074","source":"LibraryItem.js:499","message":"Loaded 10 of 194 authors for \"Newest Authors\" in 0.01s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:44.074","source":"LibraryItem.js:502","message":"Loaded 7 personalized shelves in 0.64s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:44.076","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:44.076","source":"ApiCacheManager.js:62","message":"[ApiCacheManager] Caching with 1800000 ms TTL","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:45.726","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 3 size: 234472","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:45.726","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:46.161","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 3 size: 234472","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:46.164","source":"libraryItemsBookFilters.js:363","message":"[LibraryItemsBookFilters] countCacheKey: {\"where\":{\"0\":{}},\"distinct\":true,\"attributes\":null,\"replacements\":{},\"include\":{\"0\":{\"model\":\"libraryItem\",\"required\":true,\"where\":{\"libraryId\":\"77605977-32fe-497d-8c15-9cb17eeb35b0\"},\"include\":{\"0\":{\"model\":\"feed\",\"required\":false,\"separate\":true}}},\"1\":{\"model\":\"bookSeries\",\"attributes\":{\"0\":\"id\",\"1\":\"seriesId\",\"2\":\"sequence\",\"3\":\"createdAt\"},\"include\":{\"model\":\"series\",\"attributes\":{\"0\":\"id\",\"1\":\"name\",\"2\":\"nameIgnorePrefix\"}},\"order\":{\"0\":{\"0\":\"createdAt\",\"1\":\"ASC\"}},\"separate\":true},\"2\":{\"model\":\"bookAuthor\",\"attributes\":{\"0\":\"authorId\",\"1\":\"createdAt\"},\"include\":{\"model\":\"author\",\"attributes\":{\"0\":\"id\",\"1\":\"name\"}},\"order\":{\"0\":{\"0\":\"createdAt\",\"1\":\"ASC\"}},\"separate\":true}},\"order\":{\"0\":{\"0\":{\"val\":\"`libraryItem`.`authorNamesLastFirst` COLLATE NOCASE\"},\"1\":\"ASC\"},\"1\":{\"0\":{\"val\":\"`libraryItem`.`titleIgnorePrefix` COLLATE NOCASE\"},\"1\":\"ASC\"}},\"subQuery\":false}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:46.212","source":"LibraryItem.js:297","message":"Loaded 48 of 441 items for libary page in 0.05s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:46.216","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?sort=media.metadata.authorNameLF&desc=0&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:48.261","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:48.262","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:48.588","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:48.588","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:53.824","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:53.824","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:53.908","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 358780","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:53.935","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:54.128","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 359534","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:54.154","source":"LibraryItem.js:297","message":"Loaded 8 of 8 items for libary page in 0.02s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:19:54.156","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.520","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"size\" changed from \"4165\" to \"5214\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"mtimeMs\" changed from \"1756556077956\" to \"1756556210158\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"ctimeMs\" changed from \"1756556077956\" to \"1756556210158\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library file \"metadata.json\" for library item \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" key \"birthtimeMs\" changed from \"1756556077956\" to \"1756556210158\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.521","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library item \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\" changed: [size,lastScan]","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.685","source":"ApiCacheManager.js:20","message":"[ApiCacheManager] libraryItem.afterUpdate: Clearing cache","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.710","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English)\" Getting metadata with precedence [folderStructure, audioMetatags, nfoFile, txtFiles, opfFile, absMetadata]","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.710","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": setChapters: Using embedded chapters in first audio file /audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].m4b","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:10.711","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Found metadata file \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/metadata.json\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:13.907","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:13.908","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket s7YYI2QW-Hx0BGDIAAAj disconnected from client \"phantomwise\" after 30473ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:20:14.903","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 0 size: 0","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:14.908","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:14.924","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 1 size: 38171","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:14.952","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:15.215","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io 7JC729fWMnKMKCQ_AAAl","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:20:15.230","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 2 size: 38925","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:15.238","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 2 size: 38925","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:15.245","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:15.269","source":"LibraryItem.js:297","message":"Loaded 8 of 8 items for libary page in 0.02s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:15.269","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:15.387","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:23.646","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English)\" Getting metadata with precedence [folderStructure, audioMetatags, nfoFile, txtFiles, opfFile, absMetadata]","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:23.646","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": setChapters: Using embedded chapters in first audio file /audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].m4b","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:23.647","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Found metadata file \"/audiobooks/Collection/Audible/Fiction/Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]/metadata.json\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:20:23.647","source":"ScanLogger.js:55","message":"[Scan] \"Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D]\": Library item is up-to-date","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:37.647","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:37.648","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket 7JC729fWMnKMKCQ_AAAl disconnected from client \"phantomwise\" after 142433ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:22:38.512","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.513","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.533","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.533","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.760","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.761","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.805","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io k9RcnIysU1GCpZzKAAAn","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:22:38.824","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.829","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:22:38.829","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:23.656","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:23.657","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket k9RcnIysU1GCpZzKAAAn disconnected from client \"phantomwise\" after 284851ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:27:24.735","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:24.735","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:24.750","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:24.751","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/series/e65b1688-2729-4eb4-a530-bdea0482555f?include=progress,rssfeed\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:24.976","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:24.976","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:25.011","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io lweDeCCaOnixIlz9AAAp","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:27:25.036","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:25.036","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/items?filter=series.ZTY1YjE2ODgtMjcyOS00ZWI0LWE1MzAtYmRlYTA0ODI1NTVm&limit=48&page=0&minified=1&include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:27:25.060","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:24.218","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:24.218","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:24.573","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 4 size: 80897","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:24.772","source":"LibraryItem.js:372","message":"Loaded 10 of 10 items for \"Continue Listening/Reading\" in 0.20s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:25.861","source":"LibraryItem.js:389","message":"Loaded 10 of 11 items for \"Continue Series\" in 1.09s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:27.667","source":"LibraryItem.js:419","message":"Loaded 10 of 441 items for \"Recently Added\" in 1.81s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:27.723","source":"LibraryItem.js:435","message":"Loaded 5 of 115 series for \"Recent Series\" in 0.06s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:28.101","source":"LibraryItem.js:450","message":"Loaded 10 of 157 items for \"Discover\" in 0.38s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:28.264","source":"LibraryItem.js:483","message":"Loaded 10 of 98 items for \"Listen/Read Again\" in 0.16s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:28.398","source":"LibraryItem.js:499","message":"Loaded 10 of 194 authors for \"Newest Authors\" in 0.13s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:28.398","source":"LibraryItem.js:502","message":"Loaded 7 personalized shelves in 3.82s","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:28.400","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:38:28.400","source":"ApiCacheManager.js:62","message":"[ApiCacheManager] Caching with 1800000 ms TTL","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:48.316","source":"SocketAuthority.js:198","message":"[SocketAuthority] User Offline phantomwise","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:48.316","source":"SocketAuthority.js:202","message":"[SocketAuthority] Socket lweDeCCaOnixIlz9AAAp disconnected from client \"phantomwise\" after 743305ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:39:49.292","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:49.292","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:49.533","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:49.533","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:49.536","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:49.536","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:49.541","source":"SocketAuthority.js:175","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io vUEWqt8KZBRbmB-tAAAr","levelName":"INFO","level":2} {"timestamp":"2025-08-30 14:39:50.314","source":"SocketAuthority.js:279","message":"[SocketAuthority] Authenticating socket to user \"phantomwise\"","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:51.520","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:51.520","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:51.838","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 5 size: 261240","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:39:53.329","source":"ApiCacheManager.js:59","message":"[ApiCacheManager] Cache miss: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/narrators\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:40:01.133","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 6 size: 293646","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:40:01.134","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0?include=filterdata\"}","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:40:01.492","source":"ApiCacheManager.js:48","message":"[ApiCacheManager] count: 6 size: 293646","levelName":"DEBUG","level":1} {"timestamp":"2025-08-30 14:40:01.493","source":"ApiCacheManager.js:51","message":"[ApiCacheManager] Cache hit: {\"user\":\"phantomwise\",\"url\":\"/libraries/77605977-32fe-497d-8c15-9cb17eeb35b0/personalized?include=rssfeed,numEpisodesIncomplete,share\"}","levelName":"DEBUG","level":1} ``` ### Additional Notes Server running in a docker container on DSM. No weird filenames with unusual characters: ```bash ├── Andrew Clawson - Harry Fox - 3 - The Celtic Quest (English) {John Pirhalla} [B0BQ5D4H6Y] │   ├── metadata.json │   ├── The Celtic Quest_ Harry Fox, Book 3 [B0BQ5D4H6Y].cue │   ├── The Celtic Quest_ Harry Fox, Book 3 [B0BQ5D4H6Y].jpg │   └── The Celtic Quest_ Harry Fox, Book 3 [B0BQ5D4H6Y].m4b ├── Andrew Clawson - Harry Fox - 4 - The Achilles Legend (English) {John Pirhalla} [B0BVT78R3D] │   ├── metadata.json │   ├── The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].cue │   ├── The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].jpg │   └── The Achilles Legend_ Harry Fox, Book 4 [B0BVT78R3D].m4b ``` No super deep nesting, they're in my library root folder for now. [2025-08-30.txt](https://github.com/user-attachments/files/22058433/2025-08-30.txt)
adam added the bug label 2026-04-25 00:12:40 +02:00
adam closed this issue 2026-04-25 00:12:40 +02:00
Author
Owner

@nichwall commented on GitHub (Aug 30, 2025):

Can you add the logs from your browser from pressing F12? It sounds like something in the frontend is having issues.

@nichwall commented on GitHub (Aug 30, 2025): Can you add the logs from your browser from pressing F12? It sounds like something in the frontend is having issues.
Author
Owner

@Phantomwise commented on GitHub (Aug 30, 2025):

After a few more tries:

  • If I open the details of book 4 and do book 4 to 3 it freezes
  • If I open the details of book 5 or any further book and to book 5 to 4 to 3 it freezes when going from book 4 to 3
  • If I open the details of book 3 and do book 3 to 4 to 3 it works
@Phantomwise commented on GitHub (Aug 30, 2025): After a few more tries: - If I open the details of book 4 and do book 4 to 3 it freezes - If I open the details of book 5 or any further book and to book 5 to 4 to 3 it freezes when going from book 4 to 3 - If I open the details of book 3 and do book 3 to 4 to 3 it works
Author
Owner

@Phantomwise commented on GitHub (Aug 30, 2025):

Can you add the logs from your browser from pressing F12? It sounds like something in the frontend is having issues.

Thanks for the suggestion! I reloaded and caused the problem again:

Socket initialized [d6ba312.js:1:199107](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js)
[SOCKET] Connected [d6ba312.js:1:190110](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js)
Fetched tasks 
Object { tasks: [], queuedTaskData: {…} }
[d6ba312.js:1:204005](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js)
Init Payload 
Object { userId: "8653e5ae-60eb-4fb9-a240-95a93d0abdbc", username: "phantomwise", usersOnline: (1) […] }
[d6ba312.js:1:191106](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js)
TypeError: can't access property "key", a is undefined
    NuxtJS 39
[03c8a98.js:2:19370](http://192.168.0.10:8078/audiobookshelf/_nuxt/03c8a98.js)

The problem doesn't actually happen every time with the console open, I had to go back and forth twice between the books to cause it again

Does that mean the problem is on my side?

Edit: Fixed the broken code block

@Phantomwise commented on GitHub (Aug 30, 2025): > Can you add the logs from your browser from pressing F12? It sounds like something in the frontend is having issues. Thanks for the suggestion! I reloaded and caused the problem again: ``` Socket initialized [d6ba312.js:1:199107](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js) [SOCKET] Connected [d6ba312.js:1:190110](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js) Fetched tasks Object { tasks: [], queuedTaskData: {…} } [d6ba312.js:1:204005](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js) Init Payload Object { userId: "8653e5ae-60eb-4fb9-a240-95a93d0abdbc", username: "phantomwise", usersOnline: (1) […] } [d6ba312.js:1:191106](http://192.168.0.10:8078/audiobookshelf/_nuxt/d6ba312.js) TypeError: can't access property "key", a is undefined NuxtJS 39 [03c8a98.js:2:19370](http://192.168.0.10:8078/audiobookshelf/_nuxt/03c8a98.js) ``` The problem doesn't actually happen every time with the console open, I had to go back and forth twice between the books to cause it again Does that mean the problem is on my side? Edit: Fixed the broken code block
Author
Owner

@nichwall commented on GitHub (Aug 30, 2025):

Awesome, thanks. It's likely there is something weird in your database that is causing the front end to have an error.

I still want to figure out what is actually happening so it can be fixed, so if you're willing to help with that debugging some more, please make a backup of your database (in the server settings) so we can do some comparisons between the database if the issue is resolved by the next steps. If you are comfortable sending the database to me and don't want to hunt down the exact issue, I can do this debugging on my server (can use the e-mail on my GitHub profile or a DM on Discord). If you want to remove all user information from that database, you can use the following commands while your Audiobookshelf server is not running:

# DB_FILE is wherever you have set up the mount point for your server, so like /mnt/audiobookshelf/config/absdatabase.sqlite
cp "$DB_FILE" "$COPY_FILE"
# Open the copy and remove all rows from the users table
sqlite3 "$COPY_FILE" "DELETE FROM users;"

Can you look at the request and response in the network tab as well? Once you have made the backup, you can also try editing the metadata fields on book 3 to see if you can determine if a specific metadata field is causing the issue, then compare to the previous value.

@nichwall commented on GitHub (Aug 30, 2025): Awesome, thanks. It's likely there is something weird in your database that is causing the front end to have an error. I still want to figure out what is actually happening so it can be fixed, so if you're willing to help with that debugging some more, please make a backup of your database (in the server settings) so we can do some comparisons between the database if the issue is resolved by the next steps. If you are comfortable sending the database to me and don't want to hunt down the exact issue, I can do this debugging on my server (can use the e-mail on my GitHub profile or a DM on Discord). If you want to remove all user information from that database, you can use the following commands while your Audiobookshelf server is not running: ``` # DB_FILE is wherever you have set up the mount point for your server, so like /mnt/audiobookshelf/config/absdatabase.sqlite cp "$DB_FILE" "$COPY_FILE" # Open the copy and remove all rows from the users table sqlite3 "$COPY_FILE" "DELETE FROM users;" ``` Can you look at the request and response in the network tab as well? Once you have made the backup, you can also try editing the metadata fields on book 3 to see if you can determine if a specific metadata field is causing the issue, then compare to the previous value.
Author
Owner

@Phantomwise commented on GitHub (Aug 30, 2025):

Thanks for the help! I have absolutely no idea what I'm doing but sure I'm willing to try 😁

I did made a backup but I don't think my email provider or discord would be happy with sending 300MB files...

Image

The TypeError happens when I go from book 5 to 4, and then the freeze happens when going from 4 to 3

@Phantomwise commented on GitHub (Aug 30, 2025): Thanks for the help! I have absolutely no idea what I'm doing but sure I'm willing to try 😁 I did made a backup but I don't think my email provider or discord would be happy with sending 300MB files... <img width="1366" height="768" alt="Image" src="https://github.com/user-attachments/assets/bf07a11b-1a72-481f-adcc-5d2873bae406" /> The TypeError happens when I go from book 5 to 4, and then the freeze happens when going from 4 to 3
Author
Owner

@nichwall commented on GitHub (Aug 30, 2025):

I did made a backup but I don't think my email provider or discord would be happy with sending 300MB files...

Ha yeah they generally aren't. If you have a file sharing site like Google Drive that works too, I can download it and then you can delete it and just email/DM a link.

The TypeError happens when I go from book 5 to 4, and then the freeze happens when going from 4 to 3

Does it also happen when going from book 2 to 3? You mentioned that 4>5>4>3 would freeze on book 3, but do you get the type error for both instances of book 4?

@nichwall commented on GitHub (Aug 30, 2025): > I did made a backup but I don't think my email provider or discord would be happy with sending 300MB files... Ha yeah they generally aren't. If you have a file sharing site like Google Drive that works too, I can download it and then you can delete it and just email/DM a link. > The TypeError happens when I go from book 5 to 4, and then the freeze happens when going from 4 to 3 > Does it also happen when going from book 2 to 3? You mentioned that 4>5>4>3 would freeze on book 3, but do you get the type error for both instances of book 4?
Author
Owner

@Phantomwise commented on GitHub (Aug 30, 2025):

Does it also happen when going from book 2 to 3? You mentioned that 4>5>4>3 would freeze on book 3, but do you get the type error for both instances of book 4?

  • The TypeError only appears on 5>4
  • There aren't any errors when going 3>4 or 3>4>5 or 1>2>3>4>5
  • Opening book 4 directly and going 4>3 actually works, no errors, even 4>3>4>3>4>3, it only shows the error when going from 5 to 4
  • After getting the error on 5>4, no matter which way I go the UI is frozen on book 4, so both 5>4>3 and 5>4>5 cause the problem (thus why I initially assumed that it was going from 4 to 3 that caused the issue)

I created a free trial account for MEGA but it'll take a while to upload.

In the meantime I tried to open the database without much luck, so I guess I'll be poking around until it's done.

@Phantomwise commented on GitHub (Aug 30, 2025): > Does it also happen when going from book 2 to 3? You mentioned that 4>5>4>3 would freeze on book 3, but do you get the type error for both instances of book 4? - The TypeError only appears on 5>4 - There aren't any errors when going 3>4 or 3>4>5 or 1>2>3>4>5 - Opening book 4 directly and going 4>3 actually works, no errors, even 4>3>4>3>4>3, it only shows the error when going from 5 to 4 - After getting the error on 5>4, no matter which way I go the UI is frozen on book 4, so both 5>4>3 and 5>4>5 cause the problem (thus why I initially assumed that it was going from 4 to 3 that caused the issue) I created a free trial account for MEGA but it'll take a while to upload. In the meantime I tried to open the database without much luck, so I guess I'll be poking around until it's done.
Author
Owner

@nichwall commented on GitHub (Aug 30, 2025):

Thanks for helping to debug this. I was able to reproduce the web client locking up using the database backup you sent me. The issue is due to you having the same tag existing twice on the same book (in this case, book 4). If you remove one of the Policier tags from that book, you should be able to reload the page and use the web client normally again.

@nichwall commented on GitHub (Aug 30, 2025): Thanks for helping to debug this. I was able to reproduce the web client locking up using the database backup you sent me. The issue is due to you having the same tag existing twice on the same book (in this case, book 4). If you remove one of the `Policier` tags from that book, you should be able to reload the page and use the web client normally again.
Author
Owner

@Phantomwise commented on GitHub (Aug 30, 2025):

Thanks a lot!

I can confirm the problem doesn't reoccur after removing the double tags, I don't see any TypeError anymore and the UI doesn't freeze.

It's a bit weird that the TypeError only happened for that book, when all of the series had the same tag twice, but as long as it works.

I think I know how it happened:

  • The Audible tags for those books included "Policier" (Detective stories) and "Policier, thrillers et œuvres à suspense" (Detective stories, thrillers and suspense)
  • When matching, Audiobookshelf seems to convert tags which include a comma and break them into separate tags. So "Policier, thrillers et œuvres à suspense" ended up being two tags, "Policier" and "thrillers et œuvres à suspense"
  • However there was already a separate "Policier" tag...
  • So "Policier" + "Policier, thrillers et œuvres à suspense" ended up "Policier" + "Policier" + "thrillers et œuvres à suspense"

It might be worth fixing so that Audiobookshelf never writes the same tag twice when matching if that risks causing problems. Or doesn't try to break up the tags with commas.

Anyway thanks again!

@Phantomwise commented on GitHub (Aug 30, 2025): Thanks a lot! I can confirm the problem doesn't reoccur after removing the double tags, I don't see any TypeError anymore and the UI doesn't freeze. It's a bit weird that the TypeError only happened for that book, when all of the series had the same tag twice, but as long as it works. I think I know how it happened: - The Audible tags for those books included "Policier" (Detective stories) and "Policier, thrillers et œuvres à suspense" (Detective stories, thrillers and suspense) - When matching, Audiobookshelf seems to convert tags which include a comma and break them into separate tags. So "Policier, thrillers et œuvres à suspense" ended up being two tags, "Policier" and "thrillers et œuvres à suspense" - However there was already a separate "Policier" tag... - So "Policier" + "Policier, thrillers et œuvres à suspense" ended up "Policier" + "Policier" + "thrillers et œuvres à suspense" It might be worth fixing so that Audiobookshelf never writes the same tag twice when matching if that risks causing problems. Or doesn't try to break up the tags with commas. Anyway thanks again!
Author
Owner

@Vito0912 commented on GitHub (Aug 30, 2025):

ABS itself should not split anything. It is a requested feature for that to say.
Maybe the metadata.json had some problems and this the tag was added twice, or maybe the files embedded metadata.
If you can reproduce this (not being the embedded metadata of the file. This would be more a file error then) it would be nice to have some steps to reproduce it

@Vito0912 commented on GitHub (Aug 30, 2025): ABS itself should not split anything. It is a requested feature for that to say. Maybe the metadata.json had some problems and this the tag was added twice, or maybe the files embedded metadata. If you can reproduce this (not being the embedded metadata of the file. This would be more a file error then) it would be nice to have some steps to reproduce it
Author
Owner

@Phantomwise commented on GitHub (Aug 30, 2025):

The double tag is easy to replicate, it happen when you match any book with Audible.fr to ASIN B0BVT78R3D (Harry Fox book 4) or others in the same series.

  1. Take a book without embedded tag metadata (or with tag metadata, it really doesn't matter, I chose one without to be sure)
Image
  1. Match it with Audible.fr to ASIN B0BVT78R3D
  2. Look at the tags
Image
  1. Check the boxes before "tags" to overwrite them and submit
  2. Result: Book with a double "Policier" tag
Image

On Audible.fr, the book 4 of the Harry Fox series shows the following categories:

From what I've seen, it's those categories that are used as tags when fetching metadata in audiobookshelf.

But during matching, audiobookshelf shows this for the tags:

  • Currently: Whatever (embedded metadata, doesn't matter at all)
  • New tags: Policier + Policier et crimes internationaux + Action et aventure + Policier + thrillers et œuvres à suspense

I've noticed that all Audible.fr categories that contain a comma get split into several tags, it's not just this book. And apparently it means that if it would give you twice the same tag then you get the same tag twice...

@Phantomwise commented on GitHub (Aug 30, 2025): The double tag is easy to replicate, it happen when you match any book with Audible.fr to ASIN B0BVT78R3D (Harry Fox book 4) or others in the same series. 1. Take a book without embedded tag metadata (or with tag metadata, it really doesn't matter, I chose one without to be sure) <img width="1366" height="768" alt="Image" src="https://github.com/user-attachments/assets/2ae0bf3b-3fb6-4488-8d4b-90ff6be2e7ed" /> 2. Match it with Audible.fr to ASIN B0BVT78R3D 3. Look at the tags <img width="1366" height="768" alt="Image" src="https://github.com/user-attachments/assets/d8b05961-89de-47b5-bc23-b527352ab198" /> 4. Check the boxes before "tags" to overwrite them and submit 5. Result: Book with a double "Policier" tag <img width="1366" height="768" alt="Image" src="https://github.com/user-attachments/assets/88a34ede-64c3-4486-9044-ff3c2327f4ad" /> On Audible.fr, the book 4 of the Harry Fox series shows the following categories: - [Action et aventure](https://www.audible.fr/tag/genre/Action-et-aventure-Livres-Audio/adbl_rec_tag_12-21-17917?ref_pageloadid=li1yLwisnr9dWvCg&pf_rd_p=c3386336-590a-4f3a-abe8-b6197a636a76&pf_rd_r=Z500Z17XDA7JRSQ4D1XJ&pageLoadId=BL9TqftcarzHWJLe&creativeId=bdf053de-16ab-43ed-b8aa-7993f60bdb95) - [Policier](https://www.audible.fr/tag/genre/Policier-Livres-Audio/adbl_rec_tag_12-21-17924?ref_pageloadid=li1yLwisnr9dWvCg&pf_rd_p=c3386336-590a-4f3a-abe8-b6197a636a76&pf_rd_r=Z500Z17XDA7JRSQ4D1XJ&pageLoadId=BL9TqftcarzHWJLe&creativeId=bdf053de-16ab-43ed-b8aa-7993f60bdb95) - [Policier, thrillers et œuvres à suspense](https://www.audible.fr/tag/genre/Policier-thrillers-et-uvres-a-suspense-Livres-Audio/adbl_rec_tag_12-21-17922?ref_pageloadid=li1yLwisnr9dWvCg&pf_rd_p=c3386336-590a-4f3a-abe8-b6197a636a76&pf_rd_r=Z500Z17XDA7JRSQ4D1XJ&pageLoadId=BL9TqftcarzHWJLe&creativeId=bdf053de-16ab-43ed-b8aa-7993f60bdb95) - [Policiers et crimes internationaux](https://www.audible.fr/tag/genre/Policiers-et-crimes-internationaux-Livres-Audio/adbl_rec_tag_12-21-18085?ref_pageloadid=li1yLwisnr9dWvCg&pf_rd_p=c3386336-590a-4f3a-abe8-b6197a636a76&pf_rd_r=Z500Z17XDA7JRSQ4D1XJ&pageLoadId=BL9TqftcarzHWJLe&creativeId=bdf053de-16ab-43ed-b8aa-7993f60bdb95) From what I've seen, it's those categories that are used as tags when fetching metadata in audiobookshelf. But during matching, audiobookshelf shows this for the tags: - `Currently: Whatever` (embedded metadata, doesn't matter at all) - New tags: `Policier` + `Policier et crimes internationaux` + `Action et aventure` + `Policier` + `thrillers et œuvres à suspense` I've noticed that all Audible.fr categories that contain a comma get split into several tags, it's not just this book. And apparently it means that if it would give you twice the same tag then you get the same tag twice...
Author
Owner

@Vito0912 commented on GitHub (Aug 30, 2025):

Actually this is an Audible issue, issuing the tag twice. Thanks for reporting. I will fix this in a tomorrow PR!

@Vito0912 commented on GitHub (Aug 30, 2025): Actually this is an Audible issue, issuing the tag twice. Thanks for reporting. I will fix this in a tomorrow PR!
Author
Owner

@nichwall commented on GitHub (Aug 30, 2025):

Oh yeah, that's a really good find. A lot of the time when this type of bug happens people don't know when the issue came up (which is fair, especially if you don't notice for several weeks or something), so glad we know the cause.

If you're taking a look at this @Vito0912 , might be worth just adding the duplicate check when we go to update the database instead of at the provider level so it applies to all providers and scanning.

@nichwall commented on GitHub (Aug 30, 2025): Oh yeah, that's a really good find. A lot of the time when this type of bug happens people don't know when the issue came up (which is fair, especially if you don't notice for several weeks or something), so glad we know the cause. If you're taking a look at this @Vito0912 , might be worth just adding the duplicate check when we go to update the database instead of at the provider level so it applies to all providers and scanning.
Author
Owner

@github-actions[bot] commented on GitHub (Dec 21, 2025):

Fixed in v2.32.0.

@github-actions[bot] commented on GitHub (Dec 21, 2025): Fixed in [v2.32.0](https://github.com/advplyr/audiobookshelf/releases/tag/v2.32.0).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#2977