{"timestamp":"2026-06-13 00:30:00.805","source":"Database.js:832","message":"[Database] Cleaned up 1 expired sessions","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:47:35.267","source":"Auth.js:341","message":"[Auth] Failed to refresh token. No refresh token provided","levelName":"ERROR","level":4} {"timestamp":"2026-06-13 15:47:37.857","source":"LocalAuthStrategy.js:88","message":"[LocalAuth] User \"az-a\" logged in from ip ::ffff:192.168.178.183","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:47:38.102","source":"SocketAuthority.js:176","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io 1Q5mHSXtSP05L-CoAAAF","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:53:51.254","source":"LibraryScanner.js:86","message":"[LibraryScanner] Starting library scan db7e8c4a-edb7-4574-b77a-b15a2823fdc5 for Audiobooks","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:53:51.352","source":"LibraryScanner.js:92","message":"[LibraryScanner] Library scan \"db7e8c4a-edb7-4574-b77a-b15a2823fdc5\" completed in 0:00 | 0 Added | 0 Updated | 0 Missing","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:53:51.366","source":"LibraryScan.js:139","message":"[LibraryScan] Scan log saved \"/metadata/logs/scans/2026-06-13_db7e8c4a-edb7-4574-b77a-b15a2823fdc5.txt\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:53:51.366","source":"LibraryController.js:1275","message":"[LibraryController] Scan complete","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:54:05.610","source":"LibraryScanner.js:65","message":"[LibraryScanner] Library metadata precedence changed since last scan. From [folderStructure,audioMetatags,nfoFile,txtFiles,opfFile,absMetadata] to [folderStructure,absMetadata,audioMetatags,nfoFile,txtFiles,opfFile]","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:54:05.610","source":"LibraryScanner.js:86","message":"[LibraryScanner] Starting (forced) library scan ba1cd49c-df5f-4055-ad44-55959289b379 for Audiobooks","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:54:05.712","source":"LibraryScanner.js:119","message":"[LibraryScanner] Library scan ba1cd49c-df5f-4055-ad44-55959289b379 failed after 0:00 | 0 Added | 0 Updated | 0 Missing. TypeError: Cannot set property authorName of [object Object] which has only a getter\n at BookScanner.rescanExistingBookLibraryItem (/app/server/scanner/BookScanner.js:334:20)\n at async LibraryScanner.scanLibrary (/app/server/scanner/LibraryScanner.js:206:49)\n at async LibraryScanner.scan (/app/server/scanner/LibraryScanner.js:89:24)\n at async ApiRouter.scan (/app/server/controllers/LibraryController.js:1272:5)","levelName":"ERROR","level":4} {"timestamp":"2026-06-13 15:54:05.713","source":"LibraryScan.js:139","message":"[LibraryScan] Scan log saved \"/metadata/logs/scans/2026-06-13_ba1cd49c-df5f-4055-ad44-55959289b379.txt\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:54:05.714","source":"LibraryController.js:1275","message":"[LibraryController] Scan complete","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:13.596","source":"LibraryScanner.js:65","message":"[LibraryScanner] Library metadata precedence changed since last scan. From [folderStructure,audioMetatags,nfoFile,txtFiles,opfFile,absMetadata] to [folderStructure,audioMetatags,absMetadata,nfoFile,txtFiles,opfFile]","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:13.598","source":"LibraryScanner.js:86","message":"[LibraryScanner] Starting (forced) library scan deea8d60-47e1-4035-ad70-5f60da6edd54 for Audiobooks","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:15.434","source":"LibraryScanner.js:119","message":"[LibraryScanner] Library scan deea8d60-47e1-4035-ad70-5f60da6edd54 failed after 0:01 | 0 Added | 0 Updated | 0 Missing. TypeError: Cannot set property authorName of [object Object] which has only a getter\n at BookScanner.rescanExistingBookLibraryItem (/app/server/scanner/BookScanner.js:334:20)\n at async LibraryScanner.scanLibrary (/app/server/scanner/LibraryScanner.js:206:49)\n at async LibraryScanner.scan (/app/server/scanner/LibraryScanner.js:89:24)\n at async ApiRouter.scan (/app/server/controllers/LibraryController.js:1272:5)","levelName":"ERROR","level":4} {"timestamp":"2026-06-13 15:55:15.437","source":"LibraryScan.js:139","message":"[LibraryScan] Scan log saved \"/metadata/logs/scans/2026-06-13_deea8d60-47e1-4035-ad70-5f60da6edd54.txt\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:15.438","source":"LibraryController.js:1275","message":"[LibraryController] Scan complete","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.363","source":"ApiRouter.js:389","message":"[ApiRouter] Removing item metadata at \"/metadata/items/e70b7928-38d1-49f0-ad99-bdecc1ee5d75\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.407","source":"ApiRouter.js:509","message":"[ApiRouter] Removed author \"Christian_Berkel\" with no books","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.443","source":"ApiRouter.js:389","message":"[ApiRouter] Removing item metadata at \"/metadata/items/984ee924-ba7e-49dc-a587-534093ceecb9\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.496","source":"ApiRouter.js:389","message":"[ApiRouter] Removing item metadata at \"/metadata/items/051ce8c7-d751-429e-a078-8e687f43c75d\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.548","source":"ApiRouter.js:389","message":"[ApiRouter] Removing item metadata at \"/metadata/items/1d44755b-75d0-4078-95bb-751b2d2c1a2c\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.629","source":"LibraryScanner.js:65","message":"[LibraryScanner] Library metadata precedence changed since last scan. From [folderStructure,audioMetatags,nfoFile,txtFiles,opfFile,absMetadata] to [folderStructure,audioMetatags,absMetadata,nfoFile,txtFiles,opfFile]","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:29.630","source":"LibraryScanner.js:86","message":"[LibraryScanner] Starting (forced) library scan 95440fae-3feb-4628-a93d-6d3d042ae7f1 for Audiobooks","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:39.006","source":"LibraryScanner.js:92","message":"[LibraryScanner] Library scan \"95440fae-3feb-4628-a93d-6d3d042ae7f1\" completed in 0:09 | 4 Added | 0 Updated | 0 Missing","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:39.015","source":"LibraryScan.js:139","message":"[LibraryScan] Scan log saved \"/metadata/logs/scans/2026-06-13_95440fae-3feb-4628-a93d-6d3d042ae7f1.txt\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:55:39.015","source":"LibraryController.js:1275","message":"[LibraryController] Scan complete","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:56:17.270","source":"LibraryScanner.js:65","message":"[LibraryScanner] Library metadata precedence changed since last scan. From [folderStructure,audioMetatags,absMetadata,nfoFile,txtFiles,opfFile] to [folderStructure,absMetadata,audioMetatags,nfoFile,txtFiles,opfFile]","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:56:17.270","source":"LibraryScanner.js:86","message":"[LibraryScanner] Starting (forced) library scan 76beec74-8448-434f-a03e-6fb7cfec434f for Audiobooks","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:56:17.373","source":"LibraryScanner.js:119","message":"[LibraryScanner] Library scan 76beec74-8448-434f-a03e-6fb7cfec434f failed after 0:00 | 0 Added | 0 Updated | 0 Missing. TypeError: Cannot set property seriesName of [object Object] which has only a getter\n at BookScanner.rescanExistingBookLibraryItem (/app/server/scanner/BookScanner.js:334:20)\n at async LibraryScanner.scanLibrary (/app/server/scanner/LibraryScanner.js:206:49)\n at async LibraryScanner.scan (/app/server/scanner/LibraryScanner.js:89:24)\n at async ApiRouter.scan (/app/server/controllers/LibraryController.js:1272:5)","levelName":"ERROR","level":4} {"timestamp":"2026-06-13 15:56:17.375","source":"LibraryScan.js:139","message":"[LibraryScan] Scan log saved \"/metadata/logs/scans/2026-06-13_76beec74-8448-434f-a03e-6fb7cfec434f.txt\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:56:17.375","source":"LibraryController.js:1275","message":"[LibraryController] Scan complete","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:57:11.652","source":"LibraryScanner.js:65","message":"[LibraryScanner] Library metadata precedence changed since last scan. From [folderStructure,audioMetatags,absMetadata,nfoFile,txtFiles,opfFile] to [folderStructure,absMetadata,audioMetatags,nfoFile,txtFiles,opfFile]","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:57:11.653","source":"LibraryScanner.js:86","message":"[LibraryScanner] Starting (forced) library scan e042a6d3-3c5f-4748-99cd-69c8d084c2ca for Audiobooks","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:57:11.922","source":"LibraryScanner.js:92","message":"[LibraryScanner] Library scan \"e042a6d3-3c5f-4748-99cd-69c8d084c2ca\" completed in 0:00 | 0 Added | 4 Updated | 0 Missing","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:57:11.936","source":"LibraryScan.js:139","message":"[LibraryScan] Scan log saved \"/metadata/logs/scans/2026-06-13_e042a6d3-3c5f-4748-99cd-69c8d084c2ca.txt\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:57:11.936","source":"LibraryController.js:1275","message":"[LibraryController] Scan complete","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:58:36.989","source":"SocketAuthority.js:207","message":"[SocketAuthority] Socket 1Q5mHSXtSP05L-CoAAAF disconnected from client \"az-a\" after 658887ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:58:37.189","source":"SocketAuthority.js:176","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io B6Kha4gizNIGYbqzAAAH","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:58:38.161","source":"SocketAuthority.js:207","message":"[SocketAuthority] Socket B6Kha4gizNIGYbqzAAAH disconnected from client \"az-a\" after 972ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:58:38.358","source":"SocketAuthority.js:176","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io YsoA4wJ6XnhWOFPNAAAJ","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:00.551","source":"PlaybackSessionManager.js:317","message":"[PlaybackSessionManager] startSession: Closing open session \"Das Blut der Koenigin\" for user \"az-a\" (Device: Mac OS 10.15.7 / Chrome)","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:21.121","source":"CoverManager.js:119","message":"[CoverManager] Uploaded libraryItem cover \"/metadata/items/91cf4f46-2ab7-4d84-9c14-b1bf14a0526a/cover.jpg\" for \"Medici - Die Macht des Geldes\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:21.332","source":"CoverManager.js:325","message":"[CoverManager] Downloaded libraryItem cover \"/metadata/items/91cf4f46-2ab7-4d84-9c14-b1bf14a0526a/cover.jpg\" from url \"https://m.media-amazon.com/images/I/61CpOvpmQKL._SL1215_.jpg\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:28.004","source":"CoverManager.js:119","message":"[CoverManager] Uploaded libraryItem cover \"/metadata/items/91cf4f46-2ab7-4d84-9c14-b1bf14a0526a/cover.jpg\" for \"Medici - Die Macht des Geldes\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:28.078","source":"CoverManager.js:119","message":"[CoverManager] Uploaded libraryItem cover \"/metadata/items/868a2d68-d35c-4bd5-82b1-58afba9fd991/cover.jpg\" for \"Medici - Die Kunst der Intrige\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:28.131","source":"CoverManager.js:119","message":"[CoverManager] Uploaded libraryItem cover \"/metadata/items/c4dc43eb-3188-4975-97ff-273b92477421/cover.jpg\" for \"Medici - Das Blut der Königin\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 15:59:28.192","source":"CoverManager.js:119","message":"[CoverManager] Uploaded libraryItem cover \"/metadata/items/eb7e82cb-cf6f-470e-ab8b-ae93cd57d2cd/cover.jpg\" for \"In einem Zug\"","levelName":"INFO","level":2} {"timestamp":"2026-06-13 16:04:56.179","source":"SocketAuthority.js:207","message":"[SocketAuthority] Socket YsoA4wJ6XnhWOFPNAAAJ disconnected from client \"az-a\" after 377821ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2026-06-13 16:04:56.377","source":"SocketAuthority.js:176","message":"[SocketAuthority] Socket Connected to /audiobookshelf/socket.io Zcrg4djKgqsvOiH7AAAL","levelName":"INFO","level":2} {"timestamp":"2026-06-13 16:05:10.588","source":"SocketAuthority.js:207","message":"[SocketAuthority] Socket Zcrg4djKgqsvOiH7AAAL disconnected from client \"az-a\" after 14212ms (Reason: transport close)","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:33.258","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:33.264","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:33.407","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:33.409","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:34.295","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:34.297","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:34.400","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:34.402","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:34.508","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:34.509","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:35.597","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:35.598","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:35.716","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:35.718","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:35.826","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:35.829","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:40.804","source":"TokenManager.js:326","message":"[TokenManager] Refresh token expired, cleaning up session","levelName":"INFO","level":2} {"timestamp":"2026-06-13 21:02:40.805","source":"TokenManager.js:333","message":"[TokenManager] Expired session cleaned up","levelName":"INFO","level":2}