🐛 Bug Description
After upgrading the Gotify server from 2.9.1 to 3.0.0, the iGotify iOS app permanently loses connection to the instance. Re-adding the instance does not resolve it.
Language: English
✅ Expected Behavior
App reconnects and continues receiving/displaying notifications after the Gotify server upgrade, using the newly issued client token.
❌ Actual Behavior
After the upgrade, the app's existing WebSocket connection drops (expected). The app then automatically registers a new client token in the new format (gtfyc.xxxxxxxx... instead of the previous bare alphanumeric format) - confirmed successful server-side (POST /client 200). The WebSocket reconnects briefly with the new token, then disconnects again. All further reconnect attempts fail immediately with a generic client-side error and, per reverse-proxy access logs, never reach the Gotify server at all (zero corresponding requests). In-app, the instance shows "Nicht authorisiert / Dein Client-Token ist nicht mehr gültig! Bitte füge die Instanz erneut hinzu." (see screenshot). Deleting and re-adding the instance reproduces the exact same failure every time.
Ruled out on our side:
- Not a local network/proxy/firewall issue: reproduced identically over cellular (5G), completely bypassing the home network and reverse proxy.
- Not a Gotify-server-side issue: the server and web UI work correctly on 3.0.0 (existing messages retrievable, web UI reconnects fine).
🔁 Steps to Reproduce
- Run Gotify 2.9.1 with an active iGotify iOS client connection
- Upgrade the Gotify server to 3.0.0 (server + web UI continue working normally)
- iGotify app loses its existing connection, automatically registers a new client token, connects briefly
- Connection drops again; all further reconnect attempts fail permanently
- Manually deleting and re-adding the instance in-app reproduces the same result
📸 Screenshots / Screen Recordings

---
📄 Logs
iGotify app log (redacted, ClientTokens shortened):
Gotify with Clienttoken: "CTiOh...(redacted)" is successfully reconnected!
...
Delete Token: CTiOh...(redacted)
Disconnection happened, type: ByUser
Gotify Url list is: empty
Gotify Client list is: empty
SecNtfy Token list is: empty
ClientToken: gtfyc.vswn...(redacted)
DeviceToken: NTFY-DEVICE-7SWw05AW************
GotifyUrl: https://[instance-domain]
Client connecting...
Done!
Disconnection happened, type: ByUser
Gotify - Url: https://[instance-domain]
Is Gotify - Url available: yes
SecNtfy Server - Url: https://api.secntfy.app
Is SecNtfy Server - Url available: yes
Client - Token: gtfyc.vswn...(redacted)
Client connecting...
Disconnection happened, type: Error
Webseocket Reconnection failed with Error. Try to reconnect ClientToken: gtfyc.vswn...(redacted) in 10s.
Stopping WebSocket...
Disconnection happened, type: ByUser
(repeats every 10s indefinitely)
Gotify server log (same time window) — no request for the failing reconnect attempts appears at all:
INF Gotify build_date=... version=3.0.0
INF HTTP method=POST path=/client status=200
INF HTTP method=GET path=/stream?token=[masked] status=200
INF HTTP method=GET path=/application status=200
... (last entry before the gap) ...
INF HTTP method=GET path=/ status=200
(2.5+ hour gap - no further requests from the app's client, only browser web-UI traffic afterwards)
Reverse-proxy log (confirms the reconnect requests never reach the server):
POST /Device/CustomHeaders/gtfyc.vswn...(redacted) 200 <- iGotify backend, token registration
(no further requests to the Gotify instance from this client for the rest of the session)
📱 Environment
- Device: iPhone
- OS & Version: iOS 26.x (CFNetwork/3860.600.12, Darwin/25.5.0)
- Container Version (Gotify server): 3.0.0 (works fine when downgraded to 2.9.1)
- iGotify Version: 1.5.1.3
✔️ Checklist
ℹ️ Additional Context
This appears isolated to the app's reconnect/auth flow with the new client-token format (gtfyc. prefix) introduced in Gotify 3.0.0, since the server and web UI otherwise function correctly on 3.0.0 and the network path is confirmed not to be the cause (identical failure over cellular). Downgrading the Gotify server back to 2.9.1 immediately and fully restores normal function with no app-side changes. Happy to provide further logs or test builds if useful.
🐛 Bug Description
After upgrading the Gotify server from 2.9.1 to 3.0.0, the iGotify iOS app permanently loses connection to the instance. Re-adding the instance does not resolve it.
✅ Expected Behavior
App reconnects and continues receiving/displaying notifications after the Gotify server upgrade, using the newly issued client token.
❌ Actual Behavior
After the upgrade, the app's existing WebSocket connection drops (expected). The app then automatically registers a new client token in the new format (
gtfyc.xxxxxxxx...instead of the previous bare alphanumeric format) - confirmed successful server-side (POST /client200). The WebSocket reconnects briefly with the new token, then disconnects again. All further reconnect attempts fail immediately with a generic client-side error and, per reverse-proxy access logs, never reach the Gotify server at all (zero corresponding requests). In-app, the instance shows "Nicht authorisiert / Dein Client-Token ist nicht mehr gültig! Bitte füge die Instanz erneut hinzu." (see screenshot). Deleting and re-adding the instance reproduces the exact same failure every time.Ruled out on our side:
🔁 Steps to Reproduce
📸 Screenshots / Screen Recordings
📄 Logs
iGotify app log (redacted, ClientTokens shortened):
Gotify server log (same time window) — no request for the failing reconnect attempts appears at all:
Reverse-proxy log (confirms the reconnect requests never reach the server):
📱 Environment
✔️ Checklist
users.dbcorruption issue on Gotify 2.7.3, fixed in 1.5.1.1; not applicable here since this only appears after the 3.0.0 upgrade)ℹ️ Additional Context
This appears isolated to the app's reconnect/auth flow with the new client-token format (
gtfyc.prefix) introduced in Gotify 3.0.0, since the server and web UI otherwise function correctly on 3.0.0 and the network path is confirmed not to be the cause (identical failure over cellular). Downgrading the Gotify server back to 2.9.1 immediately and fully restores normal function with no app-side changes. Happy to provide further logs or test builds if useful.