[Bug]: All image downloads fail as blocked (not resolved) #2162

Closed
opened 2026-04-25 00:04:20 +02:00 by adam · 8 comments
Owner

Originally created by @chilynthe on GitHub (Aug 8, 2024).

What happened?

As with the closed bug report 3100 and the discord conversation with surf108, any cover images or author images that are downloaded, either via the Edit > Cover search features or manually adding a url, fail consistently with the following type of error:

[AuthorFinder] Download image file failed for "https://images-na.ssl-images-amazon.com/images/S/amzn-author-media-prod/bsf846hh2eo2dse1t05c5rmq2e.jpg" Call to ::ffff:23.43.242.130 is blocked.

[fileUtils] Failed to download file "/testbooks/Brandon Sanderson/Mistborn_ Secret History (23)/cover" Error: Call to ::ffff:142.251.41.78 is blocked.

[CoverManager] Download image file failed for "https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api" Call to ::ffff:142.251.41.78 is blocked.


I tried the solution in the closed bug report, it did not have any effect. I considered downgrading to 2.7.1 as surf108 did, but did not want to lose other updates that are relevant to me. I have also updated to 2.12.1 with no change.

At first, I thought it might be a weird permissions issue, as my library is on a mounted NFS, but I tried a test on a local folder contained in the same parent as the container and got the same result. The only thing that works consistently is either manually uploading a file, or (with ebooks) changing the cover in the embedded metadata via something like Calibre and then rescanning.

What did you expect to happen?

When editing an item and using either Edit > Cover search feature or the Image URL from the Web, selecting an image/adding a url and submitting it should download and then apply the new image to the item's cover. Similar steps and expectations relating to the author image.

Steps to reproduce the issue

  1. Attempt to add a new cover or author image by any means other than scan or upload.

Audiobookshelf version

2.12.1

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?

Google Chrome

Logs

2024-08-07 22:41:15 } (AudiobookCovers.js:27)
2024-08-07 22:41:26 [2024-08-07 22:41:26.074] ERROR: [fileUtils] Failed to download file "/testbooks/Brandon Sanderson/Mistborn_ Secret History (23)/cover" AxiosError: Call to ::ffff:142.251.41.78 is blocked.
2024-08-07 22:41:26     at TLSSocket.<anonymous> (/node_modules/ssrf-req-filter/lib/index.js:38:29)
2024-08-07 22:41:26     at TLSSocket.emit (node:events:519:28)
2024-08-07 22:41:26     at GetAddrInfoReqWrap.emitLookup [as callback] (node:net:1439:14)
2024-08-07 22:41:26     at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:132:8) {
2024-08-07 22:41:26   config: {
2024-08-07 22:41:26     transitional: {
2024-08-07 22:41:26       silentJSONParsing: true,
2024-08-07 22:41:26       forcedJSONParsing: true,
2024-08-07 22:41:26       clarifyTimeoutError: false
2024-08-07 22:41:26     },
2024-08-07 22:41:26     adapter: [Function: httpAdapter],
2024-08-07 22:41:26     transformRequest: [ [Function: transformRequest] ],
2024-08-07 22:41:26     transformResponse: [ [Function: transformResponse] ],
2024-08-07 22:41:26     timeout: 30000,
2024-08-07 22:41:26     xsrfCookieName: 'XSRF-TOKEN',
2024-08-07 22:41:26     xsrfHeaderName: 'X-XSRF-TOKEN',
2024-08-07 22:41:26     maxContentLength: -1,
2024-08-07 22:41:26     maxBodyLength: -1,
2024-08-07 22:41:26     env: { FormData: [Function] },
2024-08-07 22:41:26     validateStatus: [Function: validateStatus],
2024-08-07 22:41:26     headers: {
2024-08-07 22:41:26       Accept: 'application/json, text/plain, */*',
2024-08-07 22:41:26       'User-Agent': 'audiobookshelf (+https://audiobookshelf.org)'
2024-08-07 22:41:26     },
2024-08-07 22:41:26     url: 'https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api',
2024-08-07 22:41:26     method: 'get',
2024-08-07 22:41:26     responseType: 'stream',
2024-08-07 22:41:26     httpAgent: Agent {
2024-08-07 22:41:26       _events: [Object: null prototype],
2024-08-07 22:41:26       _eventsCount: 2,
2024-08-07 22:41:26       _maxListeners: undefined,
2024-08-07 22:41:26       defaultPort: 443,
2024-08-07 22:41:26       protocol: 'https:',
2024-08-07 22:41:26       options: [Object: null prototype],
2024-08-07 22:41:26       requests: [Object: null prototype] {},
2024-08-07 22:41:26       sockets: [Object: null prototype] {},
2024-08-07 22:41:26       freeSockets: [Object: null prototype] {},
2024-08-07 22:41:26       keepAliveMsecs: 1000,
2024-08-07 22:41:26       keepAlive: false,
2024-08-07 22:41:26       maxSockets: Infinity,
2024-08-07 22:41:26       maxFreeSockets: 256,
2024-08-07 22:41:26       scheduling: 'lifo',
2024-08-07 22:41:26       maxTotalSockets: Infinity,
2024-08-07 22:41:26       totalSocketCount: 0,
2024-08-07 22:41:26       maxCachedSessions: 100,
2024-08-07 22:41:26       _sessionCache: [Object],
2024-08-07 22:41:26       createConnection: [Function (anonymous)],
2024-08-07 22:41:26       [Symbol(shapeMode)]: false,
2024-08-07 22:41:26       [Symbol(kCapture)]: false,
2024-08-07 22:41:26       [Symbol(active)]: true
2024-08-07 22:41:26     },
2024-08-07 22:41:26     httpsAgent: Agent {
2024-08-07 22:41:26       _events: [Object: null prototype],
2024-08-07 22:41:26       _eventsCount: 2,
2024-08-07 22:41:26       _maxListeners: undefined,
2024-08-07 22:41:26       defaultPort: 443,
2024-08-07 22:41:26       protocol: 'https:',
2024-08-07 22:41:26       options: [Object: null prototype],
2024-08-07 22:41:26       requests: [Object: null prototype] {},
2024-08-07 22:41:26       sockets: [Object: null prototype],
2024-08-07 22:41:26       freeSockets: [Object: null prototype] {},
2024-08-07 22:41:26       keepAliveMsecs: 1000,
2024-08-07 22:41:26       keepAlive: false,
2024-08-07 22:41:26       maxSockets: Infinity,
2024-08-07 22:41:26       maxFreeSockets: 256,
2024-08-07 22:41:26       scheduling: 'lifo',
2024-08-07 22:41:26       maxTotalSockets: Infinity,
2024-08-07 22:41:26       totalSocketCount: 1,
2024-08-07 22:41:26       maxCachedSessions: 100,
2024-08-07 22:41:26       _sessionCache: [Object],
2024-08-07 22:41:26       createConnection: [Function (anonymous)],
2024-08-07 22:41:26       [Symbol(shapeMode)]: false,
2024-08-07 22:41:26       [Symbol(kCapture)]: false,
2024-08-07 22:41:26       [Symbol(active)]: true
2024-08-07 22:41:26     },
2024-08-07 22:41:26     data: undefined
2024-08-07 22:41:26   },
2024-08-07 22:41:26   request: <ref *1> Writable {
2024-08-07 22:41:26     _events: {
2024-08-07 22:41:26       close: undefined,
2024-08-07 22:41:26       error: [Function: handleRequestError],
2024-08-07 22:41:26       prefinish: undefined,
2024-08-07 22:41:26       finish: undefined,
2024-08-07 22:41:26       drain: undefined,
2024-08-07 22:41:26       response: [Function: handleResponse],
2024-08-07 22:41:26       socket: [Array],
2024-08-07 22:41:26       timeout: undefined,
2024-08-07 22:41:26       abort: undefined
2024-08-07 22:41:26     },
2024-08-07 22:41:26     _writableState: WritableState {
2024-08-07 22:41:26       highWaterMark: 16384,
2024-08-07 22:41:26       length: 0,
2024-08-07 22:41:26       corked: 0,
2024-08-07 22:41:26       onwrite: [Function: bound onwrite],
2024-08-07 22:41:26       writelen: 0,
2024-08-07 22:41:26       bufferedIndex: 0,
2024-08-07 22:41:26       pendingcb: 0,
2024-08-07 22:41:26       [Symbol(kState)]: 17580812,
2024-08-07 22:41:26       [Symbol(kBufferedValue)]: null
2024-08-07 22:41:26     },
2024-08-07 22:41:26     _maxListeners: undefined,
2024-08-07 22:41:26     _options: {
2024-08-07 22:41:26       maxRedirects: 21,
2024-08-07 22:41:26       maxBodyLength: 10485760,
2024-08-07 22:41:26       protocol: 'https:',
2024-08-07 22:41:26       path: '/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api',
2024-08-07 22:41:26       method: 'GET',
2024-08-07 22:41:26       headers: [Object],
2024-08-07 22:41:26       agent: [Agent],
2024-08-07 22:41:16 [2024-08-07 22:41:16.292] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=brandon+sanderson"
2024-08-07 22:41:16 [2024-08-07 22:41:16.294] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=mistborn%3A+secret+history"
2024-08-07 22:41:24 [2024-08-07 22:41:24.574] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=brandon+sanderson"
2024-08-07 22:41:24 [2024-08-07 22:41:24.575] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=mistborn%3A+secret+history"
2024-08-07 22:41:26 [2024-08-07 22:41:26.606] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=brandon+sanderson"
2024-08-07 22:41:26 [2024-08-07 22:41:26.606] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=mistborn%3A+secret+history"
2024-08-07 22:41:26       agents: [Object],
2024-08-07 22:41:26       auth: undefined,
2024-08-07 22:41:26       hostname: 'books.google.com',
2024-08-07 22:41:26       port: null,
2024-08-07 22:41:26       nativeProtocols: [Object],
2024-08-07 22:41:26       pathname: '/books/content',
2024-08-07 22:41:26       search: '?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api'
2024-08-07 22:41:26     },
2024-08-07 22:41:26     _ended: true,
2024-08-07 22:41:26     _ending: true,
2024-08-07 22:41:26     _redirectCount: 0,
2024-08-07 22:41:26     _redirects: [],
2024-08-07 22:41:26     _requestBodyLength: 0,
2024-08-07 22:41:26     _requestBodyBuffers: [],
2024-08-07 22:41:26     _eventsCount: 3,
2024-08-07 22:41:26     _onNativeResponse: [Function (anonymous)],
2024-08-07 22:41:26     _currentRequest: ClientRequest {
2024-08-07 22:41:26       _events: [Object: null prototype],
2024-08-07 22:41:26       _eventsCount: 7,
2024-08-07 22:41:26       _maxListeners: undefined,
2024-08-07 22:41:26       outputData: [],
2024-08-07 22:41:26       outputSize: 0,
2024-08-07 22:41:26       writable: true,
2024-08-07 22:41:26       destroyed: false,
2024-08-07 22:41:26       _last: true,
2024-08-07 22:41:26       chunkedEncoding: false,
2024-08-07 22:41:26       shouldKeepAlive: false,
2024-08-07 22:41:26       maxRequestsOnConnectionReached: false,
2024-08-07 22:41:26       _defaultKeepAlive: true,
2024-08-07 22:41:26       useChunkedEncodingByDefault: false,
2024-08-07 22:41:26       sendDate: false,
2024-08-07 22:41:26       _removedConnection: false,
2024-08-07 22:41:26       _removedContLen: false,
2024-08-07 22:41:26       _removedTE: false,
2024-08-07 22:41:26       strictContentLength: false,
2024-08-07 22:41:26       _contentLength: 0,
2024-08-07 22:41:26       _hasBody: true,
2024-08-07 22:41:26       _trailer: '',
2024-08-07 22:41:26       finished: true,
2024-08-07 22:41:26       _headerSent: true,
2024-08-07 22:41:26       _closed: false,
2024-08-07 22:41:26       socket: [TLSSocket],
2024-08-07 22:41:26       _header: 'GET /books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api HTTP/1.1\r\n' +
2024-08-07 22:41:26         'Accept: application/json, text/plain, */*\r\n' +
2024-08-07 22:41:26         'User-Agent: audiobookshelf (+https://audiobookshelf.org)\r\n' +
2024-08-07 22:41:26         'Host: books.google.com\r\n' +
2024-08-07 22:41:26         'Connection: close\r\n' +
2024-08-07 22:41:26         '\r\n',
2024-08-07 22:41:26       _keepAliveTimeout: 0,
2024-08-07 22:41:26       _onPendingData: [Function: nop],
2024-08-07 22:41:26       agent: [Agent],
2024-08-07 22:41:26       socketPath: undefined,
2024-08-07 22:41:26       method: 'GET',
2024-08-07 22:41:26       maxHeaderSize: undefined,
2024-08-07 22:41:26       insecureHTTPParser: undefined,
2024-08-07 22:41:26       joinDuplicateHeaders: undefined,
2024-08-07 22:41:26       path: '/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api',
2024-08-07 22:41:26       _ended: false,
2024-08-07 22:41:26       res: null,
2024-08-07 22:41:26       aborted: false,
2024-08-07 22:41:26       timeoutCb: null,
2024-08-07 22:41:26       upgradeOrConnect: false,
2024-08-07 22:41:26       parser: null,
2024-08-07 22:41:26       maxHeadersCount: null,
2024-08-07 22:41:26       reusedSocket: false,
2024-08-07 22:41:26       host: 'books.google.com',
2024-08-07 22:41:26       protocol: 'https:',
2024-08-07 22:41:26       _redirectable: [Circular *1],
2024-08-07 22:41:26       [Symbol(shapeMode)]: false,
2024-08-07 22:41:26       [Symbol(kCapture)]: false,
2024-08-07 22:41:26       [Symbol(kBytesWritten)]: 0,
2024-08-07 22:41:26       [Symbol(kNeedDrain)]: false,
2024-08-07 22:41:26       [Symbol(corked)]: 0,
2024-08-07 22:41:26       [Symbol(kOutHeaders)]: [Object: null prototype],
2024-08-07 22:41:26       [Symbol(errored)]: null,
2024-08-07 22:41:26       [Symbol(kHighWaterMark)]: 16384,
2024-08-07 22:41:26       [Symbol(kRejectNonStandardBodyWrites)]: false,
2024-08-07 22:41:26       [Symbol(kUniqueHeaders)]: null
2024-08-07 22:41:26     },
2024-08-07 22:41:26     _currentUrl: 'https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api',
2024-08-07 22:41:26     _timeout: null,
2024-08-07 22:41:26     [Symbol(shapeMode)]: true,
2024-08-07 22:41:26     [Symbol(kCapture)]: false
2024-08-07 22:41:26   }
2024-08-07 22:41:26 } (fileUtils.js:279)
2024-08-07 22:41:26 [2024-08-07 22:41:26.079] ERROR: [CoverManager] Download image file failed for "https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api" Call to ::ffff:142.251.41.78 is blocked. (CoverManager.js:129)

Additional Notes

I also tried other browsers and other OS's for the browsers, including Firefox Android, etc. Always the same result.

Originally created by @chilynthe on GitHub (Aug 8, 2024). ### What happened? As with the closed bug report [3100](https://github.com/advplyr/audiobookshelf/issues/3100) and the [discord conversation](https://discord.com/channels/942908292873723984/1240686686229499995) with surf108, any cover images or author images that are downloaded, either via the Edit > Cover search features or manually adding a url, fail consistently with the following type of error: [AuthorFinder] Download image file failed for "https://images-na.ssl-images-amazon.com/images/S/amzn-author-media-prod/bsf846hh2eo2dse1t05c5rmq2e.jpg" Call to ::ffff:23.43.242.130 is blocked. [fileUtils] Failed to download file "/testbooks/Brandon Sanderson/Mistborn_ Secret History (23)/cover" Error: Call to ::ffff:142.251.41.78 is blocked. [CoverManager] Download image file failed for "https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api" Call to ::ffff:142.251.41.78 is blocked. --- I tried the solution in the closed bug report, it did not have any effect. I considered downgrading to 2.7.1 as surf108 did, but did not want to lose other updates that are relevant to me. I have also updated to 2.12.1 with no change. At first, I thought it might be a weird permissions issue, as my library is on a mounted NFS, but I tried a test on a local folder contained in the same parent as the container and got the same result. The only thing that works consistently is either manually uploading a file, or (with ebooks) changing the cover in the embedded metadata via something like Calibre and then rescanning. ### What did you expect to happen? When editing an item and using either Edit > Cover search feature or the Image URL from the Web, selecting an image/adding a url and submitting it should download and then apply the new image to the item's cover. Similar steps and expectations relating to the author image. ### Steps to reproduce the issue 1. Attempt to add a new cover or author image by any means other than scan or upload. ### Audiobookshelf version 2.12.1 ### 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? Google Chrome ### Logs ```shell 2024-08-07 22:41:15 } (AudiobookCovers.js:27) 2024-08-07 22:41:26 [2024-08-07 22:41:26.074] ERROR: [fileUtils] Failed to download file "/testbooks/Brandon Sanderson/Mistborn_ Secret History (23)/cover" AxiosError: Call to ::ffff:142.251.41.78 is blocked. 2024-08-07 22:41:26 at TLSSocket.<anonymous> (/node_modules/ssrf-req-filter/lib/index.js:38:29) 2024-08-07 22:41:26 at TLSSocket.emit (node:events:519:28) 2024-08-07 22:41:26 at GetAddrInfoReqWrap.emitLookup [as callback] (node:net:1439:14) 2024-08-07 22:41:26 at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:132:8) { 2024-08-07 22:41:26 config: { 2024-08-07 22:41:26 transitional: { 2024-08-07 22:41:26 silentJSONParsing: true, 2024-08-07 22:41:26 forcedJSONParsing: true, 2024-08-07 22:41:26 clarifyTimeoutError: false 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 adapter: [Function: httpAdapter], 2024-08-07 22:41:26 transformRequest: [ [Function: transformRequest] ], 2024-08-07 22:41:26 transformResponse: [ [Function: transformResponse] ], 2024-08-07 22:41:26 timeout: 30000, 2024-08-07 22:41:26 xsrfCookieName: 'XSRF-TOKEN', 2024-08-07 22:41:26 xsrfHeaderName: 'X-XSRF-TOKEN', 2024-08-07 22:41:26 maxContentLength: -1, 2024-08-07 22:41:26 maxBodyLength: -1, 2024-08-07 22:41:26 env: { FormData: [Function] }, 2024-08-07 22:41:26 validateStatus: [Function: validateStatus], 2024-08-07 22:41:26 headers: { 2024-08-07 22:41:26 Accept: 'application/json, text/plain, */*', 2024-08-07 22:41:26 'User-Agent': 'audiobookshelf (+https://audiobookshelf.org)' 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 url: 'https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api', 2024-08-07 22:41:26 method: 'get', 2024-08-07 22:41:26 responseType: 'stream', 2024-08-07 22:41:26 httpAgent: Agent { 2024-08-07 22:41:26 _events: [Object: null prototype], 2024-08-07 22:41:26 _eventsCount: 2, 2024-08-07 22:41:26 _maxListeners: undefined, 2024-08-07 22:41:26 defaultPort: 443, 2024-08-07 22:41:26 protocol: 'https:', 2024-08-07 22:41:26 options: [Object: null prototype], 2024-08-07 22:41:26 requests: [Object: null prototype] {}, 2024-08-07 22:41:26 sockets: [Object: null prototype] {}, 2024-08-07 22:41:26 freeSockets: [Object: null prototype] {}, 2024-08-07 22:41:26 keepAliveMsecs: 1000, 2024-08-07 22:41:26 keepAlive: false, 2024-08-07 22:41:26 maxSockets: Infinity, 2024-08-07 22:41:26 maxFreeSockets: 256, 2024-08-07 22:41:26 scheduling: 'lifo', 2024-08-07 22:41:26 maxTotalSockets: Infinity, 2024-08-07 22:41:26 totalSocketCount: 0, 2024-08-07 22:41:26 maxCachedSessions: 100, 2024-08-07 22:41:26 _sessionCache: [Object], 2024-08-07 22:41:26 createConnection: [Function (anonymous)], 2024-08-07 22:41:26 [Symbol(shapeMode)]: false, 2024-08-07 22:41:26 [Symbol(kCapture)]: false, 2024-08-07 22:41:26 [Symbol(active)]: true 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 httpsAgent: Agent { 2024-08-07 22:41:26 _events: [Object: null prototype], 2024-08-07 22:41:26 _eventsCount: 2, 2024-08-07 22:41:26 _maxListeners: undefined, 2024-08-07 22:41:26 defaultPort: 443, 2024-08-07 22:41:26 protocol: 'https:', 2024-08-07 22:41:26 options: [Object: null prototype], 2024-08-07 22:41:26 requests: [Object: null prototype] {}, 2024-08-07 22:41:26 sockets: [Object: null prototype], 2024-08-07 22:41:26 freeSockets: [Object: null prototype] {}, 2024-08-07 22:41:26 keepAliveMsecs: 1000, 2024-08-07 22:41:26 keepAlive: false, 2024-08-07 22:41:26 maxSockets: Infinity, 2024-08-07 22:41:26 maxFreeSockets: 256, 2024-08-07 22:41:26 scheduling: 'lifo', 2024-08-07 22:41:26 maxTotalSockets: Infinity, 2024-08-07 22:41:26 totalSocketCount: 1, 2024-08-07 22:41:26 maxCachedSessions: 100, 2024-08-07 22:41:26 _sessionCache: [Object], 2024-08-07 22:41:26 createConnection: [Function (anonymous)], 2024-08-07 22:41:26 [Symbol(shapeMode)]: false, 2024-08-07 22:41:26 [Symbol(kCapture)]: false, 2024-08-07 22:41:26 [Symbol(active)]: true 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 data: undefined 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 request: <ref *1> Writable { 2024-08-07 22:41:26 _events: { 2024-08-07 22:41:26 close: undefined, 2024-08-07 22:41:26 error: [Function: handleRequestError], 2024-08-07 22:41:26 prefinish: undefined, 2024-08-07 22:41:26 finish: undefined, 2024-08-07 22:41:26 drain: undefined, 2024-08-07 22:41:26 response: [Function: handleResponse], 2024-08-07 22:41:26 socket: [Array], 2024-08-07 22:41:26 timeout: undefined, 2024-08-07 22:41:26 abort: undefined 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 _writableState: WritableState { 2024-08-07 22:41:26 highWaterMark: 16384, 2024-08-07 22:41:26 length: 0, 2024-08-07 22:41:26 corked: 0, 2024-08-07 22:41:26 onwrite: [Function: bound onwrite], 2024-08-07 22:41:26 writelen: 0, 2024-08-07 22:41:26 bufferedIndex: 0, 2024-08-07 22:41:26 pendingcb: 0, 2024-08-07 22:41:26 [Symbol(kState)]: 17580812, 2024-08-07 22:41:26 [Symbol(kBufferedValue)]: null 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 _maxListeners: undefined, 2024-08-07 22:41:26 _options: { 2024-08-07 22:41:26 maxRedirects: 21, 2024-08-07 22:41:26 maxBodyLength: 10485760, 2024-08-07 22:41:26 protocol: 'https:', 2024-08-07 22:41:26 path: '/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api', 2024-08-07 22:41:26 method: 'GET', 2024-08-07 22:41:26 headers: [Object], 2024-08-07 22:41:26 agent: [Agent], 2024-08-07 22:41:16 [2024-08-07 22:41:16.292] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=brandon+sanderson" 2024-08-07 22:41:16 [2024-08-07 22:41:16.294] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=mistborn%3A+secret+history" 2024-08-07 22:41:24 [2024-08-07 22:41:24.574] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=brandon+sanderson" 2024-08-07 22:41:24 [2024-08-07 22:41:24.575] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=mistborn%3A+secret+history" 2024-08-07 22:41:26 [2024-08-07 22:41:26.606] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=brandon+sanderson" 2024-08-07 22:41:26 [2024-08-07 22:41:26.606] INFO: [Audnexus] Searching for author "https://api.audnex.us/authors?name=mistborn%3A+secret+history" 2024-08-07 22:41:26 agents: [Object], 2024-08-07 22:41:26 auth: undefined, 2024-08-07 22:41:26 hostname: 'books.google.com', 2024-08-07 22:41:26 port: null, 2024-08-07 22:41:26 nativeProtocols: [Object], 2024-08-07 22:41:26 pathname: '/books/content', 2024-08-07 22:41:26 search: '?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api' 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 _ended: true, 2024-08-07 22:41:26 _ending: true, 2024-08-07 22:41:26 _redirectCount: 0, 2024-08-07 22:41:26 _redirects: [], 2024-08-07 22:41:26 _requestBodyLength: 0, 2024-08-07 22:41:26 _requestBodyBuffers: [], 2024-08-07 22:41:26 _eventsCount: 3, 2024-08-07 22:41:26 _onNativeResponse: [Function (anonymous)], 2024-08-07 22:41:26 _currentRequest: ClientRequest { 2024-08-07 22:41:26 _events: [Object: null prototype], 2024-08-07 22:41:26 _eventsCount: 7, 2024-08-07 22:41:26 _maxListeners: undefined, 2024-08-07 22:41:26 outputData: [], 2024-08-07 22:41:26 outputSize: 0, 2024-08-07 22:41:26 writable: true, 2024-08-07 22:41:26 destroyed: false, 2024-08-07 22:41:26 _last: true, 2024-08-07 22:41:26 chunkedEncoding: false, 2024-08-07 22:41:26 shouldKeepAlive: false, 2024-08-07 22:41:26 maxRequestsOnConnectionReached: false, 2024-08-07 22:41:26 _defaultKeepAlive: true, 2024-08-07 22:41:26 useChunkedEncodingByDefault: false, 2024-08-07 22:41:26 sendDate: false, 2024-08-07 22:41:26 _removedConnection: false, 2024-08-07 22:41:26 _removedContLen: false, 2024-08-07 22:41:26 _removedTE: false, 2024-08-07 22:41:26 strictContentLength: false, 2024-08-07 22:41:26 _contentLength: 0, 2024-08-07 22:41:26 _hasBody: true, 2024-08-07 22:41:26 _trailer: '', 2024-08-07 22:41:26 finished: true, 2024-08-07 22:41:26 _headerSent: true, 2024-08-07 22:41:26 _closed: false, 2024-08-07 22:41:26 socket: [TLSSocket], 2024-08-07 22:41:26 _header: 'GET /books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api HTTP/1.1\r\n' + 2024-08-07 22:41:26 'Accept: application/json, text/plain, */*\r\n' + 2024-08-07 22:41:26 'User-Agent: audiobookshelf (+https://audiobookshelf.org)\r\n' + 2024-08-07 22:41:26 'Host: books.google.com\r\n' + 2024-08-07 22:41:26 'Connection: close\r\n' + 2024-08-07 22:41:26 '\r\n', 2024-08-07 22:41:26 _keepAliveTimeout: 0, 2024-08-07 22:41:26 _onPendingData: [Function: nop], 2024-08-07 22:41:26 agent: [Agent], 2024-08-07 22:41:26 socketPath: undefined, 2024-08-07 22:41:26 method: 'GET', 2024-08-07 22:41:26 maxHeaderSize: undefined, 2024-08-07 22:41:26 insecureHTTPParser: undefined, 2024-08-07 22:41:26 joinDuplicateHeaders: undefined, 2024-08-07 22:41:26 path: '/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api', 2024-08-07 22:41:26 _ended: false, 2024-08-07 22:41:26 res: null, 2024-08-07 22:41:26 aborted: false, 2024-08-07 22:41:26 timeoutCb: null, 2024-08-07 22:41:26 upgradeOrConnect: false, 2024-08-07 22:41:26 parser: null, 2024-08-07 22:41:26 maxHeadersCount: null, 2024-08-07 22:41:26 reusedSocket: false, 2024-08-07 22:41:26 host: 'books.google.com', 2024-08-07 22:41:26 protocol: 'https:', 2024-08-07 22:41:26 _redirectable: [Circular *1], 2024-08-07 22:41:26 [Symbol(shapeMode)]: false, 2024-08-07 22:41:26 [Symbol(kCapture)]: false, 2024-08-07 22:41:26 [Symbol(kBytesWritten)]: 0, 2024-08-07 22:41:26 [Symbol(kNeedDrain)]: false, 2024-08-07 22:41:26 [Symbol(corked)]: 0, 2024-08-07 22:41:26 [Symbol(kOutHeaders)]: [Object: null prototype], 2024-08-07 22:41:26 [Symbol(errored)]: null, 2024-08-07 22:41:26 [Symbol(kHighWaterMark)]: 16384, 2024-08-07 22:41:26 [Symbol(kRejectNonStandardBodyWrites)]: false, 2024-08-07 22:41:26 [Symbol(kUniqueHeaders)]: null 2024-08-07 22:41:26 }, 2024-08-07 22:41:26 _currentUrl: 'https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api', 2024-08-07 22:41:26 _timeout: null, 2024-08-07 22:41:26 [Symbol(shapeMode)]: true, 2024-08-07 22:41:26 [Symbol(kCapture)]: false 2024-08-07 22:41:26 } 2024-08-07 22:41:26 } (fileUtils.js:279) 2024-08-07 22:41:26 [2024-08-07 22:41:26.079] ERROR: [CoverManager] Download image file failed for "https://books.google.com/books/content?id=t_ZYYXZq4RgC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api" Call to ::ffff:142.251.41.78 is blocked. (CoverManager.js:129) ``` ### Additional Notes I also tried other browsers and other OS's for the browsers, including Firefox Android, etc. Always the same result.
adam added the bug label 2026-04-25 00:04:20 +02:00
adam closed this issue 2026-04-25 00:04:20 +02:00
Author
Owner

@advplyr commented on GitHub (Aug 8, 2024):

I just tested this and wasn't able to reproduce it. This is most likely a networking issue, can you share information about your setup?
Have you tested this using a local ip address instead of through a reverse proxy?

@advplyr commented on GitHub (Aug 8, 2024): I just tested this and wasn't able to reproduce it. This is most likely a networking issue, can you share information about your setup? Have you tested this using a local ip address instead of through a reverse proxy?
Author
Owner

@chilynthe commented on GitHub (Aug 8, 2024):

Hi! Thanks for looking into it. I don't have a reverse proxy setup, I have only been using local ip. I did have IPV6 set to auto but disabled it when I was testing with no change. Uncomplicated firewall is off.

  • I am using NordVPN with Meshnet (WireGuard). I just tried turning off Meshnet and restarting the container, and got the same result.
  • Next, I tried it with NordVPN off, entirely (including Meshnet), confirming no VPN in Network Manager, and then rebooted the machine (also cleared cookies from the remote browser I was using). Same result.
  • I tried on the remote browser -- Windows 11, most recent Google Chrome 127.0.6533.100, cleared cache and cookies -- and on Firefox on the Ubuntu 24.04 machine. Same result on both.

The container is built in Docker Compose on Docker Desktop for Linux. Sidenote, I also tried using the native Linux install to see if Docker Desktop was the problem and I couldn't get the service to start. Not trying to troubleshoot that, here, unless you think it worthwhile, but I figured mentioning I tried it was relevant to the troubleshooting steps.

Is there anything else, specific I can let you know about?


My Compose is below:

services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
environment:
- PUID=1000
- PGID=1000
- TZ=America/Winnipeg
volumes:
- /home/chilyn/Docker/audiobookshelf/config:/config
- /home/chilyn/Docker/audiobookshelf/metadata:/metadata
- /home/chilyn/Docker/- Backup/abs:/testbooks
- /mnt/nas-nfs/Books/Audiobooks:/audiobooks
- /mnt/nas-nfs/Books/Podcasts:/podcasts
- /mnt/nas-nfs/Books/Calibre Library:/books
ports:
- 13378:80
restart: unless-stopped

@chilynthe commented on GitHub (Aug 8, 2024): Hi! Thanks for looking into it. I don't have a reverse proxy setup, I have only been using local ip. I did have IPV6 set to auto but disabled it when I was testing with no change. Uncomplicated firewall is off. - I am using NordVPN with Meshnet (WireGuard). I just tried turning off Meshnet and restarting the container, and got the same result. - Next, I tried it with NordVPN off, entirely (including Meshnet), confirming no VPN in Network Manager, and then rebooted the machine (also cleared cookies from the remote browser I was using). Same result. - I tried on the remote browser -- Windows 11, most recent Google Chrome 127.0.6533.100, cleared cache and cookies -- and on Firefox on the Ubuntu 24.04 machine. Same result on both. The container is built in Docker Compose on Docker Desktop for Linux. Sidenote, I also tried using the native Linux install to see if Docker Desktop was the problem and I couldn't get the service to start. Not trying to troubleshoot that, here, unless you think it worthwhile, but I figured mentioning I tried it was relevant to the troubleshooting steps. Is there anything else, specific I can let you know about? --- My Compose is below: services: audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest container_name: audiobookshelf environment: - PUID=1000 - PGID=1000 - TZ=America/Winnipeg volumes: - /home/chilyn/Docker/audiobookshelf/config:/config - /home/chilyn/Docker/audiobookshelf/metadata:/metadata - /home/chilyn/Docker/- Backup/abs:/testbooks - /mnt/nas-nfs/Books/Audiobooks:/audiobooks - /mnt/nas-nfs/Books/Podcasts:/podcasts - /mnt/nas-nfs/Books/Calibre Library:/books ports: - 13378:80 restart: unless-stopped
Author
Owner

@chilynthe commented on GitHub (Aug 9, 2024):

I installed Docker CE alongside Docker Desktop and built the Audiobookshelf container, first as a clean install, and then with my config and metadata folders from Docker Desktop. In both cases, everything worked as expected.

Noting that the new pull was 2.12.2, I went back to Docker Desktop and pulled the new image -- unfortunately, that did not do it.

So it seems that Docker Desktop might be where to look. Maybe it's something to do with how virtiofs works with the system? Or some setting or other I am not familiar with or am missing.

Any ideas?

@chilynthe commented on GitHub (Aug 9, 2024): I installed Docker CE alongside Docker Desktop and built the Audiobookshelf container, first as a clean install, and then with my config and metadata folders from Docker Desktop. In both cases, everything worked as expected. Noting that the new pull was 2.12.2, I went back to Docker Desktop and pulled the new image -- unfortunately, that did not do it. So it seems that Docker Desktop might be where to look. Maybe it's something to do with how virtiofs works with the system? Or some setting or other I am not familiar with or am missing. Any ideas?
Author
Owner

@migol commented on GitHub (Aug 10, 2024):

Try adding this to your compose service definition:

sysctls:
- net.ipv6.conf.all.disable_ipv6=1

It will force it to use IPv4 only since it seems IPv6 has some issues in your setup

@migol commented on GitHub (Aug 10, 2024): Try adding this to your compose service definition: `sysctls:` ` - net.ipv6.conf.all.disable_ipv6=1` It will force it to use IPv4 only since it seems IPv6 has some issues in your setup
Author
Owner

@chilynthe commented on GitHub (Aug 10, 2024):

Try adding this to your compose service definition:

sysctls: - net.ipv6.conf.all.disable_ipv6=1

It will force it to use IPv4 only since it seems IPv6 has some issues in your setup

Thanks for trying to help -- it is much appreciated! Unfortunately, as mentioned in my response to avdplyr, I did try with IPV6 off and it did not change anything.

@chilynthe commented on GitHub (Aug 10, 2024): > Try adding this to your compose service definition: > > `sysctls:` ` - net.ipv6.conf.all.disable_ipv6=1` > > It will force it to use IPv4 only since it seems IPv6 has some issues in your setup Thanks for trying to help -- it is much appreciated! Unfortunately, as mentioned in my response to avdplyr, I did try with IPV6 off and it did not change anything.
Author
Owner

@advplyr commented on GitHub (Aug 10, 2024):

I'm not sure why this is happening for your network setup but you can try disabling the SSRF request filter by passing in an env variable.
DISABLE_SSRF_REQUEST_FILTER=1

Let me know if you are unsure about passing in env variables.

@advplyr commented on GitHub (Aug 10, 2024): I'm not sure why this is happening for your network setup but you can try disabling the SSRF request filter by passing in an env variable. `DISABLE_SSRF_REQUEST_FILTER=1` Let me know if you are unsure about passing in env variables.
Author
Owner

@chilynthe commented on GitHub (Aug 10, 2024):

I'm not sure why this is happening for your network setup but you can try disabling the SSRF request filter by passing in an env variable. DISABLE_SSRF_REQUEST_FILTER=1

Let me know if you are unsure about passing in env variables.

I have decided to run DockerCE, exclusively (removed Docker Desktop from my system), for the moment. It seems to be fine. I may try Docker Desktop again at a later point and use this if I run into the same issues. Hopefully this thread will be of use for someone else who runs into this issue.

Thanks, again, for trying to sort this amongst the multitude of moving parts that comprise your excellent program! :)

@chilynthe commented on GitHub (Aug 10, 2024): > I'm not sure why this is happening for your network setup but you can try disabling the SSRF request filter by passing in an env variable. `DISABLE_SSRF_REQUEST_FILTER=1` > > Let me know if you are unsure about passing in env variables. I have decided to run DockerCE, exclusively (removed Docker Desktop from my system), for the moment. It seems to be fine. I may try Docker Desktop again at a later point and use this if I run into the same issues. Hopefully this thread will be of use for someone else who runs into this issue. Thanks, again, for trying to sort this amongst the multitude of moving parts that comprise your excellent program! :)
Author
Owner

@pwli0755 commented on GitHub (Sep 13, 2024):

same here with docker desktop, seems not related to ipv6 stuff,
[2024-09-13 13:56:30.171] ERROR: [fileUtils] Failed to download file "/audiobooks/rework/cover" AxiosError: Call to 198.18.0.183 is blocked.

UPDATE: with DISABLE_SSRF_REQUEST_FILTER=1 it works

@pwli0755 commented on GitHub (Sep 13, 2024): same here with docker desktop, seems not related to ipv6 stuff, `[2024-09-13 13:56:30.171] ERROR: [fileUtils] Failed to download file "/audiobooks/rework/cover" AxiosError: Call to 198.18.0.183 is blocked.` UPDATE: with `DISABLE_SSRF_REQUEST_FILTER=1` it works
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#2162