[Bug]: Server cannot pull author information #180

Open
opened 2025-10-14 16:07:34 -06:00 by navan · 0 comments
Owner

Originally created by @lordofwizard on 7/26/2025

What happened?

Running docker compose version of the audiobookshelf

when clicked on "Quick Match" for author the information is not pulled.

Here are the logs.

here is the docker compose file that i am currently using. with v2.26.3 (latest tag at the time of submitting the bug)

###################################################################################################

#
#    _             _ _       ____              _     ____  _          _  __
#   / \  _   _  __| (_) ___ | __ )  ___   ___ | | __/ ___|| |__   ___| |/ _|
#  / _ \| | | |/ _` | |/ _ \|  _ \ / _ \ / _ \| |/ /\___ \| '_ \ / _ \ | |_
# / ___ \ |_| | (_| | | (_) | |_) | (_) | (_) |   <  ___) | | | |  __/ |  _|
#/_/   \_\__,_|\__,_|_|\___/|____/ \___/ \___/|_|\_\|____/|_| |_|\___|_|_|
#

  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    ports:
      - 6903:80
    volumes:
      - ${PWD}/audiobookshelf/audiobooks:/audiobooks
      - ${PWD}/audiobookshelf/podcasts:/podcasts
      - ${PWD}/audiobookshelf/config:/config
      - ${PWD}/audiobookshelf/metadata:/metadata
    environment:
      - TZ=Asia/Kolkata

What did you expect to happen?

I want it such that it automatilly pulls the author information and show's the author's picture as well as relational metadata

Steps to reproduce the issue

  1. Setup Docker container
  2. Add Audiobook
  3. From author tab, click on a author and click "Quick match"

Audiobookshelf version

v2.26.3

How are you running audiobookshelf?

Docker

What OS is your Audiobookshelf server hosted from?

Linux

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

Chrome

Logs

2025-07-26 15:26:21.049

INFO

=== Starting Server ===

2025-07-26 15:26:21.050

INFO

[Server] Init v2.26.3

2025-07-26 15:26:21.050

INFO

[Server] Node.js Version: v20.19.4

2025-07-26 15:26:21.050

INFO

[Server] Platform: linux

2025-07-26 15:26:21.051

INFO

[Server] Arch: arm64

2025-07-26 15:26:21.061

INFO

[Database] Initializing db at "/config/absdatabase.sqlite"

2025-07-26 15:26:21.098

INFO

[Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so

2025-07-26 15:26:21.099

INFO

[Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so

2025-07-26 15:26:21.099

INFO

[Database] Db supports unaccent and unicode foldings

2025-07-26 15:26:21.100

INFO

[Database] Db connection was successful

2025-07-26 15:26:21.161

INFO

[MigrationManager] Migrating database up to version 2.26.3

2025-07-26 15:26:21.162

INFO

[MigrationManager] Migrations to run: v2.26.0-create-auth-tables.js

2025-07-26 15:26:21.167

INFO

Created a backup of the original database.

2025-07-26 15:26:21.173

INFO

{ event: 'migrating', name: 'v2.26.0-create-auth-tables.js' }

2025-07-26 15:26:21.173

INFO

[2.26.0 migration] UPGRADE BEGIN: 2.26.0-create-auth-tables

2025-07-26 15:26:21.175

INFO

[2.26.0 migration] creating table "sessions"

2025-07-26 15:26:21.186

INFO

[2.26.0 migration] created table "sessions"

2025-07-26 15:26:21.187

INFO

[2.26.0 migration] creating table "apiKeys"

2025-07-26 15:26:21.195

INFO

[2.26.0 migration] created table "apiKeys"

2025-07-26 15:26:21.195

INFO

[2.26.0 migration] UPGRADE END: 2.26.0-create-auth-tables

2025-07-26 15:26:21.211

INFO

{ event: 'migrated', name: 'v2.26.0-create-auth-tables.js', durationSeconds: 0.04 }

2025-07-26 15:26:21.213

INFO

[MigrationManager] Migrations successfully applied to the original database.

2025-07-26 15:26:21.356

INFO

[Database] Db initialized with models: SequelizeMeta, user, session, apiKey, library, libraryFolder, book, podcast, podcastEpisode, libraryItem, mediaProgress, series, bookSeries, author, bookAuthor, collection, collectionBook, playlist, playlistMediaItem, device, playbackSession, feed, feedEpisode, setting, customMetadataProvider, mediaItemShare

2025-07-26 15:26:21.393

INFO

[Database] Server upgrade detected from 2.25.1 to 2.26.3

2025-07-26 15:26:21.402

INFO

[Database] running ANALYZE

2025-07-26 15:26:21.410

INFO

[Database] ANALYZE completed

2025-07-26 15:26:21.412

INFO

[LogManager] Init current daily log filename: 2025-07-26.txt

2025-07-26 15:26:21.425

INFO

[BackupManager] 0 Backups Found

2025-07-26 15:26:21.425

INFO

[BackupManager] Auto Backups are disabled

2025-07-26 15:26:21.445

INFO

[Watcher] Initializing watcher for "Audiobooks".

2025-07-26 15:26:21.463

INFO

Listening on port :80

2025-07-26 15:26:21.503

INFO

[Watcher] "Audiobooks" Ready

2025-07-26 15:26:22.759

INFO

[SocketAuthority] Socket Connected to /audiobookshelf/socket.io 80H6rs84IE36jKBpAAAB

2025-07-26 15:26:51.972

INFO

[SocketAuthority] Socket Connected to /audiobookshelf/socket.io _vmth6BMqQ9zz5Q2AAAD

2025-07-26 15:27:21.502

INFO

=== Starting Server ===

2025-07-26 15:27:21.503

INFO

[Server] Init v2.26.3

2025-07-26 15:27:21.503

INFO

[Server] Node.js Version: v20.19.4

2025-07-26 15:27:21.503

INFO

[Server] Platform: linux

2025-07-26 15:27:21.504

INFO

[Server] Arch: arm64

2025-07-26 15:27:21.515

INFO

[Database] Initializing db at "/config/absdatabase.sqlite"

2025-07-26 15:27:21.548

INFO

[Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so

2025-07-26 15:27:21.549

INFO

[Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so

2025-07-26 15:27:21.549

INFO

[Database] Db supports unaccent and unicode foldings

2025-07-26 15:27:21.550

INFO

[Database] Db connection was successful

2025-07-26 15:27:21.556

INFO

[MigrationManager] Database is already up to date.

2025-07-26 15:27:21.698

INFO

[Database] Db initialized with models: user, session, apiKey, library, libraryFolder, book, podcast, podcastEpisode, libraryItem, mediaProgress, series, bookSeries, author, bookAuthor, collection, collectionBook, playlist, playlistMediaItem, device, playbackSession, feed, feedEpisode, setting, customMetadataProvider, mediaItemShare

2025-07-26 15:27:21.740

INFO

[Database] running ANALYZE

2025-07-26 15:27:21.750

INFO

[Database] ANALYZE completed

2025-07-26 15:27:21.751

INFO

[LogManager] Init current daily log filename: 2025-07-26.txt

2025-07-26 15:27:21.759

INFO

[BackupManager] 0 Backups Found

2025-07-26 15:27:21.760

INFO

[BackupManager] Auto Backups are disabled

2025-07-26 15:27:21.776

INFO

[Watcher] Initializing watcher for "Audiobooks".

2025-07-26 15:27:21.786

INFO

Listening on port :80

2025-07-26 15:27:21.814

INFO

[Watcher] "Audiobooks" Ready

2025-07-26 15:27:26.747

INFO

[SocketAuthority] Socket Connected to /audiobookshelf/socket.io _33D85RnbdV8HKSKAAAB

2025-07-26 15:27:29.936

INFO

[SocketAuthority] Socket Connected to /audiobookshelf/socket.io bWcFcrBBtjVo9mk9AAAD

2025-07-26 15:27:50.686

INFO

[LocalAuth] User "root" logged in from ip 2409:40c2:600b:9f67:6c5e:6115:5c05:8776

2025-07-26 15:27:52.279

INFO

[LocalAuth] User "root" logged in from ip 2409:40c2:600b:9f67:6c5e:6115:5c05:8776

2025-07-26 15:27:54.775

INFO

[SocketAuthority] Socket Connected to /audiobookshelf/socket.io dg8MpzSfg2N-pWC8AAAF

2025-07-26 15:28:01.188

INFO

[Audnexus] Searching for author "https://api.audnex.us/authors?name=Frank+Herbert&region=us"

2025-07-26 15:28:01.225

ERROR

[Audnexus] Author ASIN request failed for Frank Herbert [AxiosError: Request failed with status code 404] { code: 'ERR_BAD_REQUEST', config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [Function: httpAdapter], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function] }, validateStatus: [Function: validateStatus], headers: { Accept: 'application/json, text/plain, */*', 'User-Agent': 'axios/0.27.2' }, method: 'get', url: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', data: undefined }, request: <ref *1> ClientRequest { _events: [Object: null prototype] { abort: [Function (anonymous)], aborted: [Function (anonymous)], connect: [Function (anonymous)], error: [Function (anonymous)], socket: [Function (anonymous)], timeout: [Function (anonymous)], finish: [Function: requestOnFinish] }, _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: true, chunkedEncoding: false, shouldKeepAlive: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, secureConnecting: false, _SNICallback: null, servername: 'api.audnex.us', alpnProtocol: false, authorized: false, authorizationError: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE', encrypted: true, _events: [Object: null prototype], _eventsCount: 9, connecting: false, _hadError: false, _parent: null, _host: 'api.audnex.us', _closeAfterHandlingError: false, _readableState: [ReadableState], _writableState: [WritableState], allowHalfOpen: false, _maxListeners: undefined, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: false, timeout: 5000, parser: null, _httpMessage: null, [Symbol(alpncallback)]: null, [Symbol(res)]: [TLSWrap], [Symbol(verified)]: true, [Symbol(pendingSession)]: null, [Symbol(async_id_symbol)]: -1, [Symbol(kHandle)]: [TLSWrap], [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: Timeout { _idleTimeout: 5000, _idlePrev: [TimersList], _idleNext: [TimersList], _idleStart: 40634, _onTimeout: [Function: bound ], _timerArgs: undefined, _repeat: null, _destroyed: false, [Symbol(refed)]: false, [Symbol(kHasPrimitive)]: false, [Symbol(asyncId)]: 2892, [Symbol(triggerId)]: 2890 }, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false, [Symbol(kSetNoDelay)]: false, [Symbol(kSetKeepAlive)]: true, [Symbol(kSetKeepAliveInitialDelay)]: 1, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object] }, _header: 'GET /authors?name=Frank+Herbert&region=us HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/0.27.2\r\n' + 'Host: api.audnex.us\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object: null prototype], requests: [Object: null prototype] {}, sockets: [Object: null prototype] {}, freeSockets: [Object: null prototype], keepAliveMsecs: 1000, keepAlive: true, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 1, maxCachedSessions: 100, _sessionCache: [Object], [Symbol(shapeMode)]: false, [Symbol(kCapture)]: false }, socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/authors?name=Frank+Herbert&region=us', _ended: true, res: IncomingMessage { _events: [Object], _readableState: [ReadableState], _maxListeners: undefined, socket: null, httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, rawHeaders: [Array], rawTrailers: [], joinDuplicateHeaders: undefined, aborted: false, upgrade: false, url: '', method: null, statusCode: 404, statusMessage: 'Not Found', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular *1], _eventsCount: 4, responseUrl: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', redirects: [], [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false, [Symbol(kHeaders)]: [Object], [Symbol(kHeadersCount)]: 16, [Symbol(kTrailers)]: null, [Symbol(kTrailersCount)]: 0 }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.audnex.us', protocol: 'https:', _redirectable: Writable { _events: [Object], _writableState: [WritableState], _maxListeners: undefined, _options: [Object], _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _eventsCount: 3, _onNativeResponse: [Function (anonymous)], _currentRequest: [Circular *1], _currentUrl: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false }, [Symbol(shapeMode)]: false, [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] { accept: [Array], 'user-agent': [Array], host: [Array] }, [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, response: { status: 404, statusText: 'Not Found', headers: { server: 'nginx/1.28.0', date: 'Sat, 26 Jul 2025 09:58:01 GMT', 'content-type': 'application/json', 'content-length': '128', connection: 'keep-alive', 'x-frame-options': 'SAMEORIGIN', 'permissions-policy': 'interest-cohort=()', 'x-content-type-options': 'nosniff' }, config: { transitional: [Object], adapter: [Function: httpAdapter], transformRequest: [Array], transformResponse: [Array], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: [Object], validateStatus: [Function: validateStatus], headers: [Object], method: 'get', url: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', data: undefined }, request: <ref *1> ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: true, chunkedEncoding: false, shouldKeepAlive: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, socket: [TLSSocket], _header: 'GET /authors?name=Frank+Herbert&region=us HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/0.27.2\r\n' + 'Host: api.audnex.us\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/authors?name=Frank+Herbert&region=us', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.audnex.us', protocol: 'https:', _redirectable: [Writable], [Symbol(shapeMode)]: false, [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, data: { error: [Object] } } }

Additional Notes

No response

*Originally created by @lordofwizard on 7/26/2025* ### What happened? Running docker compose version of the audiobookshelf when clicked on "Quick Match" for author the information is not pulled. Here are the logs. here is the docker compose file that i am currently using. with v2.26.3 (latest tag at the time of submitting the bug) ```yaml ################################################################################################### # # _ _ _ ____ _ ____ _ _ __ # / \ _ _ __| (_) ___ | __ ) ___ ___ | | __/ ___|| |__ ___| |/ _| # / _ \| | | |/ _` | |/ _ \| _ \ / _ \ / _ \| |/ /\___ \| '_ \ / _ \ | |_ # / ___ \ |_| | (_| | | (_) | |_) | (_) | (_) | < ___) | | | | __/ | _| #/_/ \_\__,_|\__,_|_|\___/|____/ \___/ \___/|_|\_\|____/|_| |_|\___|_|_| # audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest ports: - 6903:80 volumes: - ${PWD}/audiobookshelf/audiobooks:/audiobooks - ${PWD}/audiobookshelf/podcasts:/podcasts - ${PWD}/audiobookshelf/config:/config - ${PWD}/audiobookshelf/metadata:/metadata environment: - TZ=Asia/Kolkata ``` ### What did you expect to happen? I want it such that it automatilly pulls the author information and show's the author's picture as well as relational metadata ### Steps to reproduce the issue 1. Setup Docker container 2. Add Audiobook 3. From author tab, click on a author and click "Quick match" ### Audiobookshelf version v2.26.3 ### How are you running audiobookshelf? Docker ### What OS is your Audiobookshelf server hosted from? Linux ### If the issue is being seen in the UI, what browsers are you seeing the problem on? Chrome ### Logs ```shell 2025-07-26 15:26:21.049 INFO === Starting Server === 2025-07-26 15:26:21.050 INFO [Server] Init v2.26.3 2025-07-26 15:26:21.050 INFO [Server] Node.js Version: v20.19.4 2025-07-26 15:26:21.050 INFO [Server] Platform: linux 2025-07-26 15:26:21.051 INFO [Server] Arch: arm64 2025-07-26 15:26:21.061 INFO [Database] Initializing db at "/config/absdatabase.sqlite" 2025-07-26 15:26:21.098 INFO [Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so 2025-07-26 15:26:21.099 INFO [Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so 2025-07-26 15:26:21.099 INFO [Database] Db supports unaccent and unicode foldings 2025-07-26 15:26:21.100 INFO [Database] Db connection was successful 2025-07-26 15:26:21.161 INFO [MigrationManager] Migrating database up to version 2.26.3 2025-07-26 15:26:21.162 INFO [MigrationManager] Migrations to run: v2.26.0-create-auth-tables.js 2025-07-26 15:26:21.167 INFO Created a backup of the original database. 2025-07-26 15:26:21.173 INFO { event: 'migrating', name: 'v2.26.0-create-auth-tables.js' } 2025-07-26 15:26:21.173 INFO [2.26.0 migration] UPGRADE BEGIN: 2.26.0-create-auth-tables 2025-07-26 15:26:21.175 INFO [2.26.0 migration] creating table "sessions" 2025-07-26 15:26:21.186 INFO [2.26.0 migration] created table "sessions" 2025-07-26 15:26:21.187 INFO [2.26.0 migration] creating table "apiKeys" 2025-07-26 15:26:21.195 INFO [2.26.0 migration] created table "apiKeys" 2025-07-26 15:26:21.195 INFO [2.26.0 migration] UPGRADE END: 2.26.0-create-auth-tables 2025-07-26 15:26:21.211 INFO { event: 'migrated', name: 'v2.26.0-create-auth-tables.js', durationSeconds: 0.04 } 2025-07-26 15:26:21.213 INFO [MigrationManager] Migrations successfully applied to the original database. 2025-07-26 15:26:21.356 INFO [Database] Db initialized with models: SequelizeMeta, user, session, apiKey, library, libraryFolder, book, podcast, podcastEpisode, libraryItem, mediaProgress, series, bookSeries, author, bookAuthor, collection, collectionBook, playlist, playlistMediaItem, device, playbackSession, feed, feedEpisode, setting, customMetadataProvider, mediaItemShare 2025-07-26 15:26:21.393 INFO [Database] Server upgrade detected from 2.25.1 to 2.26.3 2025-07-26 15:26:21.402 INFO [Database] running ANALYZE 2025-07-26 15:26:21.410 INFO [Database] ANALYZE completed 2025-07-26 15:26:21.412 INFO [LogManager] Init current daily log filename: 2025-07-26.txt 2025-07-26 15:26:21.425 INFO [BackupManager] 0 Backups Found 2025-07-26 15:26:21.425 INFO [BackupManager] Auto Backups are disabled 2025-07-26 15:26:21.445 INFO [Watcher] Initializing watcher for "Audiobooks". 2025-07-26 15:26:21.463 INFO Listening on port :80 2025-07-26 15:26:21.503 INFO [Watcher] "Audiobooks" Ready 2025-07-26 15:26:22.759 INFO [SocketAuthority] Socket Connected to /audiobookshelf/socket.io 80H6rs84IE36jKBpAAAB 2025-07-26 15:26:51.972 INFO [SocketAuthority] Socket Connected to /audiobookshelf/socket.io _vmth6BMqQ9zz5Q2AAAD 2025-07-26 15:27:21.502 INFO === Starting Server === 2025-07-26 15:27:21.503 INFO [Server] Init v2.26.3 2025-07-26 15:27:21.503 INFO [Server] Node.js Version: v20.19.4 2025-07-26 15:27:21.503 INFO [Server] Platform: linux 2025-07-26 15:27:21.504 INFO [Server] Arch: arm64 2025-07-26 15:27:21.515 INFO [Database] Initializing db at "/config/absdatabase.sqlite" 2025-07-26 15:27:21.548 INFO [Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so 2025-07-26 15:27:21.549 INFO [Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so 2025-07-26 15:27:21.549 INFO [Database] Db supports unaccent and unicode foldings 2025-07-26 15:27:21.550 INFO [Database] Db connection was successful 2025-07-26 15:27:21.556 INFO [MigrationManager] Database is already up to date. 2025-07-26 15:27:21.698 INFO [Database] Db initialized with models: user, session, apiKey, library, libraryFolder, book, podcast, podcastEpisode, libraryItem, mediaProgress, series, bookSeries, author, bookAuthor, collection, collectionBook, playlist, playlistMediaItem, device, playbackSession, feed, feedEpisode, setting, customMetadataProvider, mediaItemShare 2025-07-26 15:27:21.740 INFO [Database] running ANALYZE 2025-07-26 15:27:21.750 INFO [Database] ANALYZE completed 2025-07-26 15:27:21.751 INFO [LogManager] Init current daily log filename: 2025-07-26.txt 2025-07-26 15:27:21.759 INFO [BackupManager] 0 Backups Found 2025-07-26 15:27:21.760 INFO [BackupManager] Auto Backups are disabled 2025-07-26 15:27:21.776 INFO [Watcher] Initializing watcher for "Audiobooks". 2025-07-26 15:27:21.786 INFO Listening on port :80 2025-07-26 15:27:21.814 INFO [Watcher] "Audiobooks" Ready 2025-07-26 15:27:26.747 INFO [SocketAuthority] Socket Connected to /audiobookshelf/socket.io _33D85RnbdV8HKSKAAAB 2025-07-26 15:27:29.936 INFO [SocketAuthority] Socket Connected to /audiobookshelf/socket.io bWcFcrBBtjVo9mk9AAAD 2025-07-26 15:27:50.686 INFO [LocalAuth] User "root" logged in from ip 2409:40c2:600b:9f67:6c5e:6115:5c05:8776 2025-07-26 15:27:52.279 INFO [LocalAuth] User "root" logged in from ip 2409:40c2:600b:9f67:6c5e:6115:5c05:8776 2025-07-26 15:27:54.775 INFO [SocketAuthority] Socket Connected to /audiobookshelf/socket.io dg8MpzSfg2N-pWC8AAAF 2025-07-26 15:28:01.188 INFO [Audnexus] Searching for author "https://api.audnex.us/authors?name=Frank+Herbert&region=us" 2025-07-26 15:28:01.225 ERROR [Audnexus] Author ASIN request failed for Frank Herbert [AxiosError: Request failed with status code 404] { code: 'ERR_BAD_REQUEST', config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [Function: httpAdapter], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function] }, validateStatus: [Function: validateStatus], headers: { Accept: 'application/json, text/plain, */*', 'User-Agent': 'axios/0.27.2' }, method: 'get', url: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', data: undefined }, request: <ref *1> ClientRequest { _events: [Object: null prototype] { abort: [Function (anonymous)], aborted: [Function (anonymous)], connect: [Function (anonymous)], error: [Function (anonymous)], socket: [Function (anonymous)], timeout: [Function (anonymous)], finish: [Function: requestOnFinish] }, _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: true, chunkedEncoding: false, shouldKeepAlive: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, secureConnecting: false, _SNICallback: null, servername: 'api.audnex.us', alpnProtocol: false, authorized: false, authorizationError: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE', encrypted: true, _events: [Object: null prototype], _eventsCount: 9, connecting: false, _hadError: false, _parent: null, _host: 'api.audnex.us', _closeAfterHandlingError: false, _readableState: [ReadableState], _writableState: [WritableState], allowHalfOpen: false, _maxListeners: undefined, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: false, timeout: 5000, parser: null, _httpMessage: null, [Symbol(alpncallback)]: null, [Symbol(res)]: [TLSWrap], [Symbol(verified)]: true, [Symbol(pendingSession)]: null, [Symbol(async_id_symbol)]: -1, [Symbol(kHandle)]: [TLSWrap], [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: Timeout { _idleTimeout: 5000, _idlePrev: [TimersList], _idleNext: [TimersList], _idleStart: 40634, _onTimeout: [Function: bound ], _timerArgs: undefined, _repeat: null, _destroyed: false, [Symbol(refed)]: false, [Symbol(kHasPrimitive)]: false, [Symbol(asyncId)]: 2892, [Symbol(triggerId)]: 2890 }, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false, [Symbol(kSetNoDelay)]: false, [Symbol(kSetKeepAlive)]: true, [Symbol(kSetKeepAliveInitialDelay)]: 1, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object] }, _header: 'GET /authors?name=Frank+Herbert&region=us HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/0.27.2\r\n' + 'Host: api.audnex.us\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object: null prototype], requests: [Object: null prototype] {}, sockets: [Object: null prototype] {}, freeSockets: [Object: null prototype], keepAliveMsecs: 1000, keepAlive: true, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 1, maxCachedSessions: 100, _sessionCache: [Object], [Symbol(shapeMode)]: false, [Symbol(kCapture)]: false }, socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/authors?name=Frank+Herbert&region=us', _ended: true, res: IncomingMessage { _events: [Object], _readableState: [ReadableState], _maxListeners: undefined, socket: null, httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, rawHeaders: [Array], rawTrailers: [], joinDuplicateHeaders: undefined, aborted: false, upgrade: false, url: '', method: null, statusCode: 404, statusMessage: 'Not Found', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular *1], _eventsCount: 4, responseUrl: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', redirects: [], [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false, [Symbol(kHeaders)]: [Object], [Symbol(kHeadersCount)]: 16, [Symbol(kTrailers)]: null, [Symbol(kTrailersCount)]: 0 }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.audnex.us', protocol: 'https:', _redirectable: Writable { _events: [Object], _writableState: [WritableState], _maxListeners: undefined, _options: [Object], _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _eventsCount: 3, _onNativeResponse: [Function (anonymous)], _currentRequest: [Circular *1], _currentUrl: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', [Symbol(shapeMode)]: true, [Symbol(kCapture)]: false }, [Symbol(shapeMode)]: false, [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] { accept: [Array], 'user-agent': [Array], host: [Array] }, [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, response: { status: 404, statusText: 'Not Found', headers: { server: 'nginx/1.28.0', date: 'Sat, 26 Jul 2025 09:58:01 GMT', 'content-type': 'application/json', 'content-length': '128', connection: 'keep-alive', 'x-frame-options': 'SAMEORIGIN', 'permissions-policy': 'interest-cohort=()', 'x-content-type-options': 'nosniff' }, config: { transitional: [Object], adapter: [Function: httpAdapter], transformRequest: [Array], transformResponse: [Array], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: [Object], validateStatus: [Function: validateStatus], headers: [Object], method: 'get', url: 'https://api.audnex.us/authors?name=Frank+Herbert&region=us', data: undefined }, request: <ref *1> ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: true, chunkedEncoding: false, shouldKeepAlive: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, socket: [TLSSocket], _header: 'GET /authors?name=Frank+Herbert&region=us HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'User-Agent: axios/0.27.2\r\n' + 'Host: api.audnex.us\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/authors?name=Frank+Herbert&region=us', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.audnex.us', protocol: 'https:', _redirectable: [Writable], [Symbol(shapeMode)]: false, [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kHighWaterMark)]: 16384, [Symbol(kRejectNonStandardBodyWrites)]: false, [Symbol(kUniqueHeaders)]: null }, data: { error: [Object] } } } ``` ### Additional Notes _No response_
Sign in to join this conversation.
No labels
authentication
awaiting release
awaiting release
awaiting release
awaiting release
backlog
backlog
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
bug
chapter editor
chapter editor
chapter editor
chapter editor
chapter editor
ebooks
ebooks
ebooks
ebooks
ebooks
ebooks
ebooks
ebooks
ebooks
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
possible plugin
progress sync
sorting/filtering/searching
sorting/filtering/searching
sorting/filtering/searching
sorting/filtering/searching
sorting/filtering/searching
sorting/filtering/searching
sorting/filtering/searching
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
unable to reproduce
upload
users & permissions
users & permissions
users & permissions
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
waiting
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github/audiobookshelf#180
No description provided.