[Bug]: ALLOW_CORS=1 does not work #2898

Closed
opened 2026-04-25 00:11:41 +02:00 by adam · 5 comments
Owner

Originally created by @ObeyYourMaster on GitHub (Jul 15, 2025).

What happened?

Hi, I wanted to get familiar with the Audiobookshelf App to start working on a PR, and thus spun up an Audiobookshelf Server for testing using Docker. Unfortunately I'm not able to connect the local dev version of the App with my dev Server due to CORS, although I set ALLOW_CORS=1 as indicated in https://www.audiobookshelf.org/docs/#security (I also tried to set it to 0, or using NODE_ENV=development, but this lead to a different error).

What did you expect to happen?

That the local dev version of the App is able to connect to an Audiobookshelf Server with ALLOW_CORS=1.

Steps to reproduce the issue

  1. Start the local dev version of the Audiobookshelf App using nuxt --hostname 0.0.0.0 --port 1337
  2. Start the Audiobookshelf Server using Docker (and initialize it by setting a root password):
services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    ports:
      - 13378:80
    volumes:
      - ./audiobooks:/audiobooks
      - ./podcasts:/podcasts
      - ./config:/config
      - ./metadata:/metadata
    environment:
      - TZ=Europe/Berlin
      - ALLOW_CORS=1   
  1. Open http://localhost:1337/connect in the browser
  2. Enter http://localhost:13378
  3. See the error Failed to contact server. (Error: NetworkError when attempting to fetch resource.) (Access-Control-Allow-Origin missing reported in browser console and network tab)

Audiobookshelf version

2.26.0

How are you running audiobookshelf?

Docker

What OS is your Audiobookshelf server hosted from?

Windows

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

Firefox

Logs

# Firefox dev console:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf http://localhost:13378//status. (Grund: CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt). Statuscode: 200.

[ServerConnectForm] Received invalid status Error: NetworkError when attempting to fetch resource.
    _callee9$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:829
    tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308
    invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481
    defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351
    Babel 6
    getRequest webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:837
    _callee11$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:889
    tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308
    invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481
    defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351
    Babel 4
    getServerAddressStatus webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:895
    _callee13$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:1091
    tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308
    invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481
    defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351
    Babel 4
    tryServerUrl webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:1118
    _callee12$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:960
    tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308
    invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481
    defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351
    Babel 4
    submit webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:987
    submit webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=template&id=b7ef5796:76
    VueJS 29
    _callee$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./pages/connect.vue?vue&type=script&lang=js:25
    tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308
    invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481
    defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351

Additional Notes

As mentioned, also tried to use NODE_ENV=development, which resulted in a different error (something like Module 'dev' not found). Also tried to use DISABLE_SSRF_REQUEST_FILTER=1 and ALLOW_IFRAME=1 out of desperation, but without effect.

Originally created by @ObeyYourMaster on GitHub (Jul 15, 2025). ### What happened? Hi, I wanted to get familiar with the Audiobookshelf App to start working on a PR, and thus spun up an Audiobookshelf Server for testing using Docker. Unfortunately I'm not able to connect the local dev version of the App with my dev Server due to CORS, although I set ALLOW_CORS=1 as indicated in https://www.audiobookshelf.org/docs/#security (I also tried to set it to 0, or using NODE_ENV=development, but this lead to a different error). ### What did you expect to happen? That the local dev version of the App is able to connect to an Audiobookshelf Server with ALLOW_CORS=1. ### Steps to reproduce the issue 1. Start the local dev version of the Audiobookshelf App using `nuxt --hostname 0.0.0.0 --port 1337` 2. Start the Audiobookshelf Server using Docker (and initialize it by setting a root password): ``` services: audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest ports: - 13378:80 volumes: - ./audiobooks:/audiobooks - ./podcasts:/podcasts - ./config:/config - ./metadata:/metadata environment: - TZ=Europe/Berlin - ALLOW_CORS=1 ``` 3. Open `http://localhost:1337/connect` in the browser 4. Enter `http://localhost:13378` 5. See the error `Failed to contact server. (Error: NetworkError when attempting to fetch resource.)` (Access-Control-Allow-Origin missing reported in browser console and network tab) ### Audiobookshelf version 2.26.0 ### How are you running audiobookshelf? Docker ### What OS is your Audiobookshelf server hosted from? Windows ### If the issue is being seen in the UI, what browsers are you seeing the problem on? Firefox ### Logs ```shell # Firefox dev console: Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf http://localhost:13378//status. (Grund: CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt). Statuscode: 200. [ServerConnectForm] Received invalid status Error: NetworkError when attempting to fetch resource. _callee9$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:829 tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308 invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481 defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351 Babel 6 getRequest webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:837 _callee11$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:889 tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308 invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481 defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351 Babel 4 getServerAddressStatus webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:895 _callee13$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:1091 tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308 invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481 defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351 Babel 4 tryServerUrl webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:1118 _callee12$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:960 tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308 invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481 defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351 Babel 4 submit webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=script&lang=js:987 submit webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./components/connection/ServerConnectForm.vue?vue&type=template&id=b7ef5796:76 VueJS 29 _callee$ webpack-internal:///./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./pages/connect.vue?vue&type=script&lang=js:25 tryCatch webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1308 invoke webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1481 defineIteratorMethods webpack-internal:///./node_modules/pdfjs-dist/es5/web/pdf_viewer.js:1351 ``` ### Additional Notes As mentioned, also tried to use NODE_ENV=development, which resulted in a different error (something like `Module 'dev' not found`). Also tried to use DISABLE_SSRF_REQUEST_FILTER=1 and ALLOW_IFRAME=1 out of desperation, but without effect.
adam added the bug label 2026-04-25 00:11:41 +02:00
adam closed this issue 2026-04-25 00:11:41 +02:00
Author
Owner

@Vito0912 commented on GitHub (Jul 15, 2025):

If you find a solution, please ping me ;)
I have the same issue, but thought it was just me because the code looked good and nobody else complained and I just used the RP after quickly trying.


If you use a reverse proxy you can add the headers there and do it via that way in the meantime.

@Vito0912 commented on GitHub (Jul 15, 2025): If you find a solution, please ping me ;) I have the same issue, but thought it was just me because the code looked good and nobody else complained and I just used the RP after quickly trying. --- If you use a reverse proxy you can add the headers there and do it via that way in the meantime.
Author
Owner

@ObeyYourMaster commented on GitHub (Jul 15, 2025):

I'm using a Firefox addon to disable CORS (https://addons.mozilla.org/de/firefox/addon/cors-everywhere/) as a workaround, but I'd like to get rid of it to be honest :)

@ObeyYourMaster commented on GitHub (Jul 15, 2025): I'm using a Firefox addon to disable CORS (https://addons.mozilla.org/de/firefox/addon/cors-everywhere/) as a workaround, but I'd like to get rid of it to be honest :)
Author
Owner

@advplyr commented on GitHub (Jul 15, 2025):

It is working now on edge

@advplyr commented on GitHub (Jul 15, 2025): It is working now on edge
Author
Owner

@ObeyYourMaster commented on GitHub (Jul 15, 2025):

Wow, that was amazingly fast! Can confirm it is working now with the edge Docker tag. Many thanks!

@ObeyYourMaster commented on GitHub (Jul 15, 2025): Wow, that was amazingly fast! Can confirm it is working now with the `edge` Docker tag. Many thanks!
Author
Owner

@github-actions[bot] commented on GitHub (Jul 17, 2025):

Fixed in v2.26.1.

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

No dependencies set.

Reference: starred/audiobookshelf#2898