Calibre-web update seems to fail

I updated today to the latest version of calibre-web, using a docker-compose.yaml file that’s very similar to the one on the page (I tweaked paths and the TZ value). It’s been working fine up until this update, but now when it starts, it ends up not fully starting up - the last messages in the log are:

calibre-web  | Traceback (most recent call last):
calibre-web  |   File "/app/calibre-web/cps.py", line 31, in <module>
calibre-web  |     main()
calibre-web  |   File "/app/calibre-web/cps/main.py", line 26, in main
calibre-web  |     app = create_app()
calibre-web  |   File "/app/calibre-web/cps/__init__.py", line 173, in create_app
calibre-web  |     register_scheduled_tasks(config.schedule_reconnect)
calibre-web  |   File "/app/calibre-web/cps/schedule.py", line 55, in register_scheduled_tasks
calibre-web  |     scheduler = BackgroundScheduler()
calibre-web  |   File "/app/calibre-web/cps/services/background_scheduler.py", line 43, in __new__
calibre-web  |     cls.scheduler = BScheduler()
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/apscheduler/schedulers/base.py", line 87, in __init__
calibre-web  |     self.configure(gconfig, **options)
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/apscheduler/schedulers/base.py", line 131, in configure
calibre-web  |     self._configure(config)
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/apscheduler/schedulers/background.py", line 29, in _configure
calibre-web  |     super(BackgroundScheduler, self)._configure(config)
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/apscheduler/schedulers/base.py", line 701, in _configure
calibre-web  |     self.timezone = astimezone(config.pop('timezone', None)) or get_localzone()
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/tzlocal/unix.py", line 203, in get_localzone
calibre-web  |     _cache_tz = _get_localzone()
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/tzlocal/unix.py", line 161, in _get_localzone
calibre-web  |     tzenv = utils._tz_from_env()
calibre-web  |   File "/usr/local/lib/python3.8/dist-packages/tzlocal/utils.py", line 125, in _tz_from_env
calibre-web  |     raise ZoneInfoNotFoundError(
calibre-web  | tzlocal.utils.ZoneInfoNotFoundError: 'tzlocal() does not support non-zoneinfo timezones like %s. \nPlease use a timezone in the form of Continent/City'

TZ is set in the docker-compose file to: Americas/Los_Angeles (Edited to fix typo)

Any assistance appreciated - if more info is needed, let me know what and I’ll let you know.

ETA: I tried a number of different release tags, and it looks like this was something that broken after the tag 0.6.18-ls167.

Americs/Los_Angeles is not a valid timezone, refer to this list List of tz database time zones - Wikipedia

Americas/Los_Angeles is what it is - sorry, typo in my original post. I’ll fix that.

Here’s the docker-compose.yaml file (with paths obscured - they’re all valid paths):

version: "2.1"
services:
  calibre-web:
    image: ghcr.io/linuxserver/calibre-web
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Americas/Los_Angeles
#      - DOCKER_MODS=linuxserver/calibre-web:calibre #optional
      - DOCKER_MODS=linuxserver/mods:universal-calibre 
      - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
    volumes:
      - /<path-to-homedir>/Dockerfiles/calibre-web/config:/config
      - /<path-to-homedir>/Calibre Library:/books
    ports:
      - 8083:8083
    restart: unless-stopped

Looks like there was a new image this morning, but that’s still reporting the same error.

Looking back over the log, there are a few other errors related to Qt:

Failed to import PyQt module: PyQt6.QtWebEngineCore with error: libXtst.so.6: cannot open shared object file: No such file or directory

and

calibre-web  | 	  File "calibre/linux.py", line 831, in setup_completion
calibre-web  | 	  File "calibre/linux.py", line 574, in write_completion
calibre-web  | 	  File "bypy-importer.py", line 279, in exec_module
calibre-web  | 	  File "calibre/gui2/viewer/main.py", line 15, in <module>
calibre-web  | 	  File "bypy-importer.py", line 279, in exec_module
calibre-web  | 	  File "calibre/gui2/viewer/ui.py", line 29, in <module>
calibre-web  | 	  File "bypy-importer.py", line 279, in exec_module
calibre-web  | 	  File "calibre/gui2/viewer/annotations.py", line 13, in <module>
calibre-web  | 	  File "bypy-importer.py", line 279, in exec_module
calibre-web  | 	  File "calibre/gui2/viewer/web_view.py", line 14, in <module>
calibre-web  | 	ImportError: cannot import name 'QWebEnginePage' from 'qt.webengine' (/app/calibre/lib/calibre-extensions/python-lib.bypy.frozen/qt/webengine.pyc)

and

calibre-web  | 	  File "calibre/linux.py", line 852, in setup_desktop_integration
calibre-web  | 	  File "calibre/linux.py", line 874, in do_setup_desktop_integration
calibre-web  | 	  File "calibre/linux.py", line 905, in install_xdg_junk
calibre-web  | 	  File "calibre/linux.py", line 890, in install_icons
calibre-web  | 	  File "calibre/linux.py", line 884, in install_single_icon
calibre-web  | 	  File "subprocess.py", line 364, in check_call
calibre-web  | 	  File "subprocess.py", line 345, in call
calibre-web  | 	  File "subprocess.py", line 966, in __init__
calibre-web  | 	  File "subprocess.py", line 1842, in _execute_child
calibre-web  | 	FileNotFoundError: [Errno 2] No such file or directory: 'xdg-icon-resource'

I’m assuming that the Qt errors aren’t particularly important since Qt isn’t used for webapps (and is likely related to just a standard Calibre build), but I mention them for completeness.

(ETA: Looks like a working release gets those Qt/xdg-icon-resource errors, so yeah, that looks insignificant)

What hardware/OS are you running this on?

OK, reading this a lot more closely, it looks like the TZ changed from “Americas/Los_Angeles” to “America/Los_Angeles”. :man_facepalming:

Gotta love standards. Thanks for the assist, and sorry for not reading closely enough to notice that difference.

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.