[BUG] Cannot view asset's info with qutebrowser or falkon #899

Closed
opened 2026-02-04 23:25:17 +03:00 by OVERLORD · 9 comments
Owner

Originally created by @Ram-Z on GitHub (May 30, 2023).

The bug

Clicking the "Info" button on an image produces the error below and nothing happens.

This happens consistently with my usual browser qutebrowser and other qtwebengine based browsers like falkon. I cannot reproduce it with Firefox or Chromium.

datetime.4fd94379.js:1 Uncaught (in promise) RangeError: Value longOffset out of range for Intl.DateTimeFormat options property timeZoneName
    at new DateTimeFormat (<anonymous>)
    at ze (datetime.4fd94379.js:1)
    at new Pr (datetime.4fd94379.js:1)
    at w.dtFormatter (datetime.4fd94379.js:1)
    at E.formatDateTime (datetime.4fd94379.js:1)
    at h.toLocaleString (datetime.4fd94379.js:1)
    at nl (asset-viewer.2038139d.js:formatted:1)
    at Sn (asset-viewer.2038139d.js:formatted:1)
    at cn (index.69ccc1f4.js:4)
    at new Tn (asset-viewer.2038139d.js:formatted:1)
asset-viewer.2038139d.js:formatted:1 Uncaught (in promise) TypeError: Cannot set property 'value' of undefined
    at asset-viewer.2038139d.js:formatted:1

The OS that Immich Server is running on

Arch

Version of Immich Server

v1.58.0

Version of Immich Mobile App

N/A

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

N/A

Your .env content

N/A

Reproduction steps

1. Open qutebrowser or falkon
2. Click on picture
3. Click on "Info"
4. Nothing happens
5. Console now contains above errors

Additional information

No response

Originally created by @Ram-Z on GitHub (May 30, 2023). ### The bug Clicking the "Info" button on an image produces the error below and nothing happens. This happens consistently with my usual browser qutebrowser and other qtwebengine based browsers like falkon. I cannot reproduce it with Firefox or Chromium. ``` datetime.4fd94379.js:1 Uncaught (in promise) RangeError: Value longOffset out of range for Intl.DateTimeFormat options property timeZoneName at new DateTimeFormat (<anonymous>) at ze (datetime.4fd94379.js:1) at new Pr (datetime.4fd94379.js:1) at w.dtFormatter (datetime.4fd94379.js:1) at E.formatDateTime (datetime.4fd94379.js:1) at h.toLocaleString (datetime.4fd94379.js:1) at nl (asset-viewer.2038139d.js:formatted:1) at Sn (asset-viewer.2038139d.js:formatted:1) at cn (index.69ccc1f4.js:4) at new Tn (asset-viewer.2038139d.js:formatted:1) asset-viewer.2038139d.js:formatted:1 Uncaught (in promise) TypeError: Cannot set property 'value' of undefined at asset-viewer.2038139d.js:formatted:1 ``` ### The OS that Immich Server is running on Arch ### Version of Immich Server v1.58.0 ### Version of Immich Mobile App N/A ### Platform with the issue - [ ] Server - [X] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML N/A ``` ### Your .env content ```Shell N/A ``` ### Reproduction steps ```bash 1. Open qutebrowser or falkon 2. Click on picture 3. Click on "Info" 4. Nothing happens 5. Console now contains above errors ``` ### Additional information _No response_
OVERLORD added the 🖥️web label 2026-02-04 23:25:17 +03:00
Author
Owner

@alextran1502 commented on GitHub (May 30, 2023):

Could it be those browsers don't support the specific API call to convert the date and time info to the appropriate locale?

@alextran1502 commented on GitHub (May 30, 2023): Could it be those browsers don't support the specific API call to convert the date and time info to the appropriate locale?
Author
Owner

@jrasm91 commented on GitHub (May 30, 2023):

That's more than likely the root cause here. You could try running some of the example here and report back.

@jrasm91 commented on GitHub (May 30, 2023): That's more than likely the root cause here. You could try running some of the example [here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) and report back.
Author
Owner

@Ram-Z commented on GitHub (May 30, 2023):

Commented constructors below do not work in my browser, expected results generated on Firefox.

const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));

console.log(new Intl.DateTimeFormat('en-US').format(date));
// Expected: "12/20/2020"
console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'short' }).format(date));
// Expected: "12/20/2020, GMT"
console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'long' }).format(date));
// Expected: "12/20/2020, Greenwich Mean Time"
//console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'shortOffset' }).format(date));
// Expected: "12/20/2020, GMT"
//console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'longOffset' }).format(date));
// Expected: "12/20/2020, GMT"
//console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'shortGeneric' }).format(date));
// Expected: "12/20/2020, United Kingdom Time"
//console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'longGeneric' }).format(date));
// Expected: "12/20/2020, United Kingdom Time"
@Ram-Z commented on GitHub (May 30, 2023): Commented constructors below do not work in my browser, expected results generated on Firefox. ```js const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738)); console.log(new Intl.DateTimeFormat('en-US').format(date)); // Expected: "12/20/2020" console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'short' }).format(date)); // Expected: "12/20/2020, GMT" console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'long' }).format(date)); // Expected: "12/20/2020, Greenwich Mean Time" //console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'shortOffset' }).format(date)); // Expected: "12/20/2020, GMT" //console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'longOffset' }).format(date)); // Expected: "12/20/2020, GMT" //console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'shortGeneric' }).format(date)); // Expected: "12/20/2020, United Kingdom Time" //console.log(new Intl.DateTimeFormat('en-US', { timeZoneName: 'longGeneric' }).format(date)); // Expected: "12/20/2020, United Kingdom Time" ```
Author
Owner

@michelheusschen commented on GitHub (May 30, 2023):

Didn't find any compatibility data for this and I had to search through the ECMAScript spec to even get some answers. In the 2021 spec timeZoneName only had the short/long options, but in 2022 it seems to have expanded which seem to cause problems for you. Specifically with longOffset which is what we're using.

The browsers you're trying to use are Chromium based, correct? Do you know which version perhaps? We could use timeZoneName: 'short' to solve this, the timezones would no longer be only GMT and also have some localized timezones like PST

@michelheusschen commented on GitHub (May 30, 2023): Didn't find any compatibility data for this and I had to search through the ECMAScript spec to even get some answers. In the [2021 spec](https://402.ecma-international.org/8.0/#table-datetimeformat-components) `timeZoneName` only had the short/long options, but in [2022](https://402.ecma-international.org/9.0/#table-datetimeformat-components) it seems to have expanded which seem to cause problems for you. Specifically with `longOffset` which is what we're using. The browsers you're trying to use are Chromium based, correct? Do you know which version perhaps? We could use `timeZoneName: 'short'` to solve this, the timezones would no longer be only GMT and also have some localized timezones like `PST`
Author
Owner

@Ram-Z commented on GitHub (May 30, 2023):

Yes it's Chromium based.

Backend: QtWebEngine 5.15.14, based on Chromium 87.0.4280.144

Full version info

Version info
         ______     ,,
    ,.-"`      | ,-` |
  .^           ||    |
 /    ,-*^|    ||    |
;    /    |    ||    ;-*```^*.
;   ;     |    |;,-*`         \
|   |     |  ,-*`    ,-"""\    \
|    \   ,-"`    ,-^`|     \    |
 \    `^^    ,-;|    |     ;    |
  *;     ,-*`  ||    |     /   ;;
    `^^`` |    ||    |   ,^    /
          |    ||    `^^`    ,^
          |  _,"|        _,-"
          -*`   ****"""``

qutebrowser v2.5.4
Git commit: a42c85e8e on master-patched (2023-05-30 00:10:40 +0100)
Backend: QtWebEngine 5.15.14, based on Chromium 87.0.4280.144
Qt: 5.15.9 (compiled 5.15.8)

CPython: 3.11.3
PyQt: 5.15.9

sip: 6.7.9
colorama: 0.4.6
jinja2: 3.1.2
pygments: 2.15.1
yaml: 6.0
adblock: no
objc: no
PyQt5.QtWebEngineWidgets: yes
PyQt5.QtWebEngine: 5.15.6
PyQt5.QtWebKitWidgets: no
pdf.js: 2.3.200 (bundled)
sqlite: 3.42.0
QtNetwork SSL: OpenSSL 3.0.8 7 Feb 2023

Style: QFusionStyle
Platform plugin: xcb
OpenGL: AMD, 4.6 (Compatibility Profile) Mesa 23.1.0
Platform: Linux-6.3.4-arch1-1-x86_64-with-glibc2.37, 64bit
Linux distribution: Arch Linux (arch)
Frozen: False
Imported from /home/ramsi/src/qutebrowser/qutebrowser
Using Python from /usr/bin/python3
Qt library executable path: /usr/lib/qt/libexec, data path: /usr/share/qt

Paths:
cache: /home/ramsi/.cache/qutebrowser
config: /home/ramsi/.config/qutebrowser
data: /home/ramsi/.local/share/qutebrowser
runtime: /run/user/1000/qutebrowser
system data: /usr/share/qutebrowser

Autoconfig loaded: yes
Config.py: /home/ramsi/.config/qutebrowser/config.py has been loaded
Uptime: 2 days, 19:43:00
Yank pastebin URL for version info
Copyright info
Copyright 2014-2021 Florian Bruhin (The Compiler)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/ or open qute://gpl.

There is some effort going on to port the browser to qt6 webengine, which I suppose will have a newer version of Blink.

@Ram-Z commented on GitHub (May 30, 2023): Yes it's Chromium based. Backend: QtWebEngine 5.15.14, based on Chromium 87.0.4280.144 <details><summary>Full version info</summary> <p> ``` Version info ______ ,, ,.-"` | ,-` | .^ || | / ,-*^| || | ; / | || ;-*```^*. ; ; | |;,-*` \ | | | ,-*` ,-"""\ \ | \ ,-"` ,-^`| \ | \ `^^ ,-;| | ; | *; ,-*` || | / ;; `^^`` | || | ,^ / | || `^^` ,^ | _,"| _,-" -*` ****"""`` qutebrowser v2.5.4 Git commit: a42c85e8e on master-patched (2023-05-30 00:10:40 +0100) Backend: QtWebEngine 5.15.14, based on Chromium 87.0.4280.144 Qt: 5.15.9 (compiled 5.15.8) CPython: 3.11.3 PyQt: 5.15.9 sip: 6.7.9 colorama: 0.4.6 jinja2: 3.1.2 pygments: 2.15.1 yaml: 6.0 adblock: no objc: no PyQt5.QtWebEngineWidgets: yes PyQt5.QtWebEngine: 5.15.6 PyQt5.QtWebKitWidgets: no pdf.js: 2.3.200 (bundled) sqlite: 3.42.0 QtNetwork SSL: OpenSSL 3.0.8 7 Feb 2023 Style: QFusionStyle Platform plugin: xcb OpenGL: AMD, 4.6 (Compatibility Profile) Mesa 23.1.0 Platform: Linux-6.3.4-arch1-1-x86_64-with-glibc2.37, 64bit Linux distribution: Arch Linux (arch) Frozen: False Imported from /home/ramsi/src/qutebrowser/qutebrowser Using Python from /usr/bin/python3 Qt library executable path: /usr/lib/qt/libexec, data path: /usr/share/qt Paths: cache: /home/ramsi/.cache/qutebrowser config: /home/ramsi/.config/qutebrowser data: /home/ramsi/.local/share/qutebrowser runtime: /run/user/1000/qutebrowser system data: /usr/share/qutebrowser Autoconfig loaded: yes Config.py: /home/ramsi/.config/qutebrowser/config.py has been loaded Uptime: 2 days, 19:43:00 Yank pastebin URL for version info Copyright info Copyright 2014-2021 Florian Bruhin (The Compiler) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/ or open qute://gpl. ``` </p> </details> There is some effort going on to port the browser to [qt6](https://github.com/qutebrowser/qutebrowser/issues/7202) webengine, which I suppose will have a newer version of Blink.
Author
Owner

@Ram-Z commented on GitHub (May 30, 2023):

I gave this a go on the qt6 version, and can still reproduce the issue.

Backend: QtWebEngine 6.3.2, based on Chromium 94.0.4606.126 (from api)

Full version info

Version info
         ______     ,,
    ,.-"`      | ,-` |
  .^           ||    |
 /    ,-*^|    ||    |
;    /    |    ||    ;-*```^*.
;   ;     |    |;,-*`         \
|   |     |  ,-*`    ,-"""\    \
|    \   ,-"`    ,-^`|     \    |
 \    `^^    ,-;|    |     ;    |
  *;     ,-*`  ||    |     /   ;;
    `^^`` |    ||    |   ,^    /
          |    ||    `^^`    ,^
          |  _,"|        _,-"
          -*`   ****"""``

qutebrowser v2.5.4
Git commit: a42c85e8e on master-patched (2023-05-30 00:10:40 +0100)
Backend: QtWebEngine 6.3.2, based on Chromium 94.0.4606.126 (from api)
Qt: 6.3.2 (compiled 6.3.1)

CPython: 3.11.3
PyQt: 6.3.1

sip: no
colorama: 0.4.6
jinja2: 3.1.2
pygments: 2.15.1
yaml: 6.0
adblock: 0.6.0
objc: no
PyQt6.QtWebEngineCore: 6.3.1
pdf.js: 2.3.200 (bundled)
sqlite: 3.39.2
QtNetwork SSL: no

Style: QFusionStyle
Platform plugin: xcb
OpenGL: AMD, 4.6 (Compatibility Profile) Mesa 23.1.1
Platform: Linux-6.3.4-arch1-1-x86_64-with-glibc2.37, 64bit
Linux distribution: Arch Linux (arch)
Frozen: False
Imported from /home/ramsi/src/qutebrowser/qutebrowser
Using Python from /home/ramsi/src/qutebrowser/.venv-qt6/bin/python
Qt library executable path: /home/ramsi/src/qutebrowser/.venv-qt6/lib/python3.11/site-packages/PyQt6/Qt6/libexec, data path: /home/ramsi/src/qutebrowser/.venv-qt6/lib/python3.11/site-packages/PyQt6/Qt6

Paths:
cache: /tmp/qutebrowser-basedir-8wlbaiqz/cache
config: /tmp/qutebrowser-basedir-8wlbaiqz/config
data: /tmp/qutebrowser-basedir-8wlbaiqz/data
runtime: /tmp/qutebrowser-basedir-8wlbaiqz/runtime
system data: /usr/share/qutebrowser

Autoconfig loaded: yes
Config.py: no config.py was loaded
Uptime: 0:01:08

@Ram-Z commented on GitHub (May 30, 2023): I gave this a go on the qt6 version, and can still reproduce the issue. Backend: QtWebEngine 6.3.2, based on Chromium 94.0.4606.126 (from api) <details><summary>Full version info</summary> <p> ``` Version info ______ ,, ,.-"` | ,-` | .^ || | / ,-*^| || | ; / | || ;-*```^*. ; ; | |;,-*` \ | | | ,-*` ,-"""\ \ | \ ,-"` ,-^`| \ | \ `^^ ,-;| | ; | *; ,-*` || | / ;; `^^`` | || | ,^ / | || `^^` ,^ | _,"| _,-" -*` ****"""`` qutebrowser v2.5.4 Git commit: a42c85e8e on master-patched (2023-05-30 00:10:40 +0100) Backend: QtWebEngine 6.3.2, based on Chromium 94.0.4606.126 (from api) Qt: 6.3.2 (compiled 6.3.1) CPython: 3.11.3 PyQt: 6.3.1 sip: no colorama: 0.4.6 jinja2: 3.1.2 pygments: 2.15.1 yaml: 6.0 adblock: 0.6.0 objc: no PyQt6.QtWebEngineCore: 6.3.1 pdf.js: 2.3.200 (bundled) sqlite: 3.39.2 QtNetwork SSL: no Style: QFusionStyle Platform plugin: xcb OpenGL: AMD, 4.6 (Compatibility Profile) Mesa 23.1.1 Platform: Linux-6.3.4-arch1-1-x86_64-with-glibc2.37, 64bit Linux distribution: Arch Linux (arch) Frozen: False Imported from /home/ramsi/src/qutebrowser/qutebrowser Using Python from /home/ramsi/src/qutebrowser/.venv-qt6/bin/python Qt library executable path: /home/ramsi/src/qutebrowser/.venv-qt6/lib/python3.11/site-packages/PyQt6/Qt6/libexec, data path: /home/ramsi/src/qutebrowser/.venv-qt6/lib/python3.11/site-packages/PyQt6/Qt6 Paths: cache: /tmp/qutebrowser-basedir-8wlbaiqz/cache config: /tmp/qutebrowser-basedir-8wlbaiqz/config data: /tmp/qutebrowser-basedir-8wlbaiqz/data runtime: /tmp/qutebrowser-basedir-8wlbaiqz/runtime system data: /usr/share/qutebrowser Autoconfig loaded: yes Config.py: no config.py was loaded Uptime: 0:01:08 ``` </p> </details>
Author
Owner

@Ram-Z commented on GitHub (May 30, 2023):

Backend: QtWebEngine 6.3.2, based on Chromium 94.0.4606.126 (from api)

QtWebEngine 6.3.2 seems to be running the last version of Chromium that does not support the extensions.

@Ram-Z commented on GitHub (May 30, 2023): > Backend: QtWebEngine 6.3.2, based on Chromium 94.0.4606.126 (from api) QtWebEngine 6.3.2 seems to be running the last version of Chromium that [does not support](https://chromestatus.com/feature/4506375298220032) the extensions.
Author
Owner

@Ram-Z commented on GitHub (May 30, 2023):

QtWebEngines 6.4 and onwards do support them and I can confirm that I cannot reproduce the bug with "Backend: QtWebEngine 6.5, based on Chromium 108.0.5359.220 (from api)".

Happy to have this resolved as "wontfix, update your browser" if you'd rather not change the timeZoneName.

@Ram-Z commented on GitHub (May 30, 2023): QtWebEngines 6.4 and onwards [do support them](https://wiki.qt.io/QtWebEngine/ChromiumVersions) and I can confirm that I cannot reproduce the bug with "Backend: QtWebEngine 6.5, based on Chromium 108.0.5359.220 (from api)". Happy to have this resolved as "wontfix, update your browser" if you'd rather not change the `timeZoneName`.
Author
Owner

@michelheusschen commented on GitHub (May 30, 2023):

There haven't been any other reports for this error and you're using an older Chromium version, so I'll leave it for now. We can always revisit this if more people run into this issue.

@michelheusschen commented on GitHub (May 30, 2023): There haven't been any other reports for this error and you're using an older Chromium version, so I'll leave it for now. We can always revisit this if more people run into this issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#899