Cannot login to Gramps Web from iPad

Gramps 6.0.8
Gramps Web API 3.16.0
Gramps Web Frontend 26.6.1
Gramps QL 0.4.0
Sifts 1.3.1
locale: en
multi-tree: false
task queue: true
OCR: true
chat: false

I wanted to test various user settings, so created a couple of accounts from my work station (an iMac).
Then using an iPad I tried to login to Gramps Web. However, I do not get the possibility to login - only to create a new account (login is greyed out). I have tried with Safari, Brave and Firefox - all with the same result.
Moreover, if I select ‘Create new account’ from the iPad, I just get a blank page.
Is there some settings in the Gramps Web I need to change?

Hi,

please upgrade to the latest version and then provide a screenshot or screencap - I’m not sure I understand what’s happening.

Upgraded to:
Gramps 6.0.8
Gramps Web API 3.19.0
Gramps Web Frontend 26.7.1
Gramps QL 0.4.0
Sifts 1.3.1
locale: en
multi-tree: false
task queue: true
OCR: true
chat: false

Using the Brave browser on the iPad, I now get the login in page. I can enter username and password, but when tapping the [login] button, nothing happens.
Using Safari and Firefox I just get a blank page when trying to connect.

Logs please.

Blank page → hard refresh (Ctrl + F5). Could be a stale service worker after the upgrade.

If nothing happens when clicking the button, please look into the browser dev tools (F12) and check if something appears in the Network tab.

Google AI suggests:

Even though Safari, Firefox, and Brave all use Apple’s required WebKit rendering engine under the hood on iPadOS, Brave successfully loads hanging pages because it aggressively blocks heavy tracking scripts, relies on independent DNS routing, and completely bypasses Apple-specific network features.

Here’s the log output when trying to connect from an iPad running Firefox

nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:05 +0000] "GET /register HTTP/2.0" 200 568 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:06 +0000] "GET /manifest.json HTTP/2.0" 200 388 "https://mountbanne.dk/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:06 +0000] "GET /j5-LpUXx.js HTTP/2.0" 200 853737 "https://mountbanne.dk/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:07 +0000] "GET /sw.js HTTP/2.0" 200 10426 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:08 +0000] "GET /lang/da.json HTTP/2.0" 200 6728 "https://mountbanne.dk/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:08 +0000] "GET /api/metadata/ HTTP/2.0" 401 115 "https://mountbanne.dk/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:08 +0000] "GET /fonts/Inter-roman.var.woff2?v=3.19 HTTP/2.0" 200 227180 "https://mountbanne.dk/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:33:09 +0000] "POST /api/token/create_owner/ HTTP/2.0" 405 58 "https://mountbanne.dk/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15" "172.18.0.2:5000"

The result is a blank page in the browser.

Using Brave browser I actually get the login page, but cannot get further. Here’s the log:

nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:03 +0000] "GET /login HTTP/2.0" 200 568 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:04 +0000] "GET /sw.js HTTP/2.0" 200 10426 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:04 +0000] "GET /manifest.json HTTP/2.0" 200 388 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:04 +0000] "GET /j5-LpUXx.js HTTP/2.0" 200 853737 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:05 +0000] "GET /fonts/Inter-roman.var.woff2?v=3.19 HTTP/2.0" 200 227180 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:05 +0000] "GET /lang/da.json HTTP/2.0" 200 6728 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:05 +0000] "GET /api/metadata/ HTTP/2.0" 401 115 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:05 +0000] "POST /api/token/create_owner/ HTTP/2.0" 405 58 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:42:05 +0000] "GET /api/oidc/config/ HTTP/2.0" 200 18 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"
nginx-proxy       | nginx.1     | mountbanne.dk 192.168.50.1 - - [06/Aug/2026:12:44:15 +0000] "GET /api/oidc/config/ HTTP/2.0" 200 18 "https://mountbanne.dk/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15" "172.18.0.2:5000"

I enter credentials but hitting the [login] button has nog effect and no further log records.

This is just the nginx Proxy’s log.

We need the Gramps Web API container’s log, plus the browser network tab.

Did you update to the latest version? Did you clear the browser cache and data?

I believe this is the latest version:

Not sure which containers to get the log from.

Is that the grampsweb or the grampsweb_celery container?

To create the log output I was running the command docker compose logs -f, that seams to output logs from all containers.

It’s the grampsweb container.

I think the dev tools’ (F12) network tab would be more useful. What is the reponse of the request that is issued when you click the login button?

There’s nothing in the grampsweb log, just a few lines from when the container was started

$ docker logs -f grampsweb

(__main__.py:8): Gtk-CRITICAL **: 18:55:26.548: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade c1d2e3f4a5b6 -> 6d8f3cb50b71, add persistent access tokens table
[2026-08-03 18:55:31 +0000] [10] [INFO] Starting gunicorn 26.0.0
[2026-08-03 18:55:31 +0000] [10] [INFO] Listening at: http://0.0.0.0:5000 (10)
[2026-08-03 18:55:31 +0000] [10] [INFO] Using worker: sync
[2026-08-03 18:55:31 +0000] [11] [INFO] Booting worker with pid: 11
[2026-08-03 18:55:32 +0000] [12] [INFO] Booting worker with pid: 12
[2026-08-03 18:55:32 +0000] [13] [INFO] Booting worker with pid: 13
[2026-08-03 18:55:32 +0000] [14] [INFO] Booting worker with pid: 14
[2026-08-03 18:55:32 +0000] [15] [INFO] Booting worker with pid: 15
[2026-08-03 18:55:32 +0000] [16] [INFO] Booting worker with pid: 16
[2026-08-03 18:55:32 +0000] [17] [INFO] Booting worker with pid: 17
[2026-08-03 18:55:32 +0000] [18] [INFO] Booting worker with pid: 18
[2026-08-03 18:55:32 +0000] [10] [INFO] Control socket listening at /root/.gunicorn/gunicorn.ctl

(gunicorn:11): Gtk-CRITICAL **: 18:55:46.390: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:18): Gtk-CRITICAL **: 18:55:46.866: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:13): Gtk-CRITICAL **: 18:55:47.035: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:12): Gtk-CRITICAL **: 18:55:47.046: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:14): Gtk-CRITICAL **: 18:55:47.290: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:17): Gtk-CRITICAL **: 18:55:47.333: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:15): Gtk-CRITICAL **: 18:55:47.389: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(gunicorn:16): Gtk-CRITICAL **: 18:55:47.460: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

That’s it.
Do I need to do something to change logging level?

I think we need this first.

How do you do that on an iPad?

Oh. Good question. :man_shrugging:

Does your Gramps Web instance work on a desktop browser?

Supposedly, as of iOS 11.2, the virtual keyboard has F1-F12 keys available when the globe :globe_with_meridians: virtual keyboard key is pressed