What went wrong?
Metadata of some books displayed as garbled, no matter what.
Steps to reproduce
Some books (usually PDF) always throw unreadable metadata no mattter what I do.
Calibre & Nitro PDF read it just fine.
The metadata is embedded in the PDF or epub file itself.
Expected vs actual behavior
Load metadata normally.
Your setup
- BookOrbit v2.0.1
- Deployment: Docker
- OS: Raspbian Trixie
- Browser: Google Chrome
Relevant logs (optional)
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19q","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [start] method=GET
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19r","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [start] method=GET
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19s","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [start] method=GET
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19q","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=329
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19r","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=321
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19o","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=1011
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19s","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=1009
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.start_scan] [start] libraryId=1 triggeredBy=manual forceFullScan=false - scan start requested
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.run_scan] [start] libraryId=1 jobId=3 folderCount=1 forceFullScan=false - scan job started
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.start_scan] [end] libraryId=1 triggeredBy=manual durationMs=6 jobId=3 - scan start accepted
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.scan_folder_candidates] [start] libraryId=1 jobId=3 libraryFolderId=1 candidateCount=115 skippedDirCount=0 unchangedDirCount=564 - folder candidate scan started
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.scan_folder_candidates] [end] libraryId=1 jobId=3 libraryFolderId=1 durationMs=268 addedCount=0 updatedCount=0 missingCount=2 - folder candidate scan completed
Screenshots (optional)
Before submitting
What went wrong?
Metadata of some books displayed as garbled, no matter what.
Steps to reproduce
Some books (usually PDF) always throw unreadable metadata no mattter what I do.
Calibre & Nitro PDF read it just fine.
The metadata is embedded in the PDF or epub file itself.
Expected vs actual behavior
Load metadata normally.
Your setup
Relevant logs (optional)
2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19q","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [start] method=GET 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19r","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [start] method=GET 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19s","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [start] method=GET 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19q","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=329 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19r","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=321 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19o","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=1011 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19s","method":"GET","url":"/api/v1/authors/metadata/stream?q=Anne+Rice®ion=us&limit=6"} context=AudnexusAuthorMetadataProvider msg=[audnexus] [end] method=GET status=200 durationMs=1009 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.start_scan] [start] libraryId=1 triggeredBy=manual forceFullScan=false - scan start requested 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.run_scan] [start] libraryId=1 jobId=3 folderCount=1 forceFullScan=false - scan job started 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.start_scan] [end] libraryId=1 triggeredBy=manual durationMs=6 jobId=3 - scan start accepted 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.scan_folder_candidates] [start] libraryId=1 jobId=3 libraryFolderId=1 candidateCount=115 skippedDirCount=0 unchangedDirCount=564 - folder candidate scan started 2026/07/01 12:57PM 30 pid=8 hostname=1326c1941bb4 req={"id":"req-19v","method":"POST","url":"/api/v1/scanner/libraries/1/scan"} context=ScannerService msg=[scanner.scan_folder_candidates] [end] libraryId=1 jobId=3 libraryFolderId=1 durationMs=268 addedCount=0 updatedCount=0 missingCount=2 - folder candidate scan completedScreenshots (optional)
Before submitting