Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Insane battery usage #282

Closed
MathieuMoalic opened this issue Feb 23, 2023 · 13 comments
Closed

Insane battery usage #282

MathieuMoalic opened this issue Feb 23, 2023 · 13 comments

Comments

@MathieuMoalic
Copy link

Hello there,

I have setup gotify on my homeserver and it works flawlessly. However, on my android device ( OnePlus 5T with OxygenOS 10.0.1 ), the gotify app will drain my battery in a few hours. For comparison, having the gotify app running while my phone is locked and screen turn off is equivalent in power draw to playing a youtube video in 1080p over 4g with 80% screen brightness. This is with battery optimization off as otherwise Android would kill the connection and render the app useless. Is there anything I can do to fix it ?

@jmattheis
Copy link
Member

Hmm, are you sure that gotify is responsible for the battery use, is it shown inside the android battery management? Gotify is by design pretty battery hungry because it has a long-running open connection. On most devices, the battery usage is negligible I don't know if that can be improved for your specific device.

@MathieuMoalic
Copy link
Author

MathieuMoalic commented Feb 23, 2023

Click to expand

Screenshot_20230223-164200.jpg

This is where I got this information about the battery usage from. This is today's battery usage I barely used my phone, other apps have 2% battery usage maximum. Is there somewhere I can have logs or find out why it's behaving like this on my device ?

@MathieuMoalic
Copy link
Author

I'm using gotify/android v2.5.1; gotify/server v2.2.4 running in a podman container. The server logs don't show anything out of the ordinary:

[GIN] 2023/02/23 - 15:49:22 | 200 |      24.313µs |             ::1 | GET      "/health"
[GIN] 2023/02/23 - 15:49:53 | 200 |       26.21µs |             ::1 | GET      "/health"
[GIN] 2023/02/23 - 15:49:59 | 200 |     584.562µs |      10.89.10.2 | GET      "/current/user"
[GIN] 2023/02/23 - 15:50:00 | 200 |      34.296µs |      10.89.10.2 | GET      "/version"
[GIN] 2023/02/23 - 15:50:00 | 200 |     328.844µs |      10.89.10.2 | GET      "/application"
[GIN] 2023/02/23 - 15:50:00 | 200 |     216.647µs |      10.89.10.2 | GET      "/stream?token=[masked]"
[GIN] 2023/02/23 - 15:50:00 | 200 |     300.249µs |      10.89.10.2 | GET      "/message?limit=100&since=0"
[GIN] 2023/02/23 - 15:50:00 | 200 |    1.614595ms |      10.89.10.2 | GET      "/application"
[GIN] 2023/02/23 - 15:50:00 | 200 |     404.079µs |      10.89.10.2 | GET      "/static/defaultapp.png"
[GIN] 2023/02/23 - 15:50:00 | 200 |     262.133µs |      10.89.10.2 | GET      "/static/defaultapp.png"
[GIN] 2023/02/23 - 15:50:05 | 200 |    5.673796ms |      10.89.10.2 | DELETE   "/message/34"
[GIN] 2023/02/23 - 15:50:24 | 200 |      25.483µs |             ::1 | GET      "/health"

@olegbilovus
Copy link

olegbilovus commented Feb 23, 2023

I'm not sure if this is related, but the app also uses a lot of memory. I got my last notification 8h ago, but in the last 3h, the app was the one which used the most memory if we exclude system apps. I've 16GB RAM for this reason I've never noticed it, but on low-end devices, it may have a bigger impact.

Click to expand

Screenshot_20230223_211500_Settings
Screenshot_20230223_211507_Settings

@jmattheis
Copy link
Member

@MathieuMoalic Could you check the logs inside gotify/android, check if there are errors over the night, or when you haven't used gotify. Maybe there are frequent reconnects or something similar. If there are frequent reconnects, it should also be visible in the gotify/server logs.

@ob-unisa maybe, but android or rather java probably doesn't trigger the garbage collection when you've so much free ram left. But I don't have much experience with memory management in android.

@MathieuMoalic
Copy link
Author

Here are both logs. The servers logs are in the UTC timezone whereas the android logs are in the CET timezone. It might or might not be relevant but the server is running in rootless podman behind a caddy reverse proxy.

Android logs
2023-02-24T13:22:28.422Z INFO: Entering LogsActivity
2023-02-24T13:22:11.891Z INFO: Loading more messages for -1
2023-02-24T13:22:11.872Z INFO: WebSocket(8): opened
2023-02-24T13:22:11.872Z INFO: Entering MessagesActivity
2023-02-24T13:22:11.811Z INFO: Server version: 2.2.4@2023-01-10-18:33:52
2023-02-24T13:22:11.664Z INFO: WebSocket(8): starting...
2023-02-24T13:22:11.662Z INFO: Starting WebSocketService
2023-02-24T13:22:11.662Z INFO: WebSocket(7): closing existing connection.
2023-02-24T13:22:11.648Z INFO: Authenticated as mat
2023-02-24T13:22:11.383Z INFO: Entering InitializationActivity
2023-02-24T12:20:01.862Z INFO: WebSocket(7): received message {"id":86,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T12:20:02.72811926Z"}

2023-02-24T10:57:29.739Z INFO: WebSocket(7): received message {"id":85,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T10:57:30.583213237Z"}

2023-02-24T09:23:21.578Z INFO: WebSocket(7): received message {"id":84,"appid":1,"message":"\[Seafile Memcached\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:22.476331642Z"}

2023-02-24T09:23:20.988Z INFO: WebSocket(7): received message {"id":83,"appid":1,"message":"\[Seafile MySQL\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:21.94108668Z"}

2023-02-24T09:23:20.583Z INFO: WebSocket(7): received message {"id":82,"appid":1,"message":"\[Seafile\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:21.475209936Z"}

2023-02-24T09:23:19.889Z INFO: WebSocket(7): received message {"id":81,"appid":1,"message":"\[Gotify\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:20.841696377Z"}

2023-02-24T09:23:19.618Z INFO: WebSocket(7): received message {"id":80,"appid":1,"message":"\[Authelia\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:20.508650782Z"}

2023-02-24T09:23:18.768Z INFO: WebSocket(7): received message {"id":79,"appid":1,"message":"\[Vaultwarden\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:19.719509736Z"}

2023-02-24T09:23:17.927Z INFO: WebSocket(7): received message {"id":78,"appid":1,"message":"\[Bazarr\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:18.881430755Z"}

2023-02-24T09:23:17.578Z INFO: WebSocket(7): received message {"id":77,"appid":1,"message":"\[Jellyfin\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:18.532368348Z"}

2023-02-24T09:23:16.809Z INFO: WebSocket(7): received message {"id":76,"appid":1,"message":"\[Prowlarr\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:17.756298739Z"}

2023-02-24T09:23:15.886Z INFO: WebSocket(7): received message {"id":75,"appid":1,"message":"\[Radarr\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:16.840316526Z"}

2023-02-24T09:23:15.347Z INFO: WebSocket(7): received message {"id":74,"appid":1,"message":"\[Sonarr\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:16.301146871Z"}

2023-02-24T09:23:14.481Z INFO: WebSocket(7): received message {"id":73,"appid":1,"message":"\[Jellyseerr\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:15.434033905Z"}

2023-02-24T09:23:13.658Z INFO: WebSocket(7): received message {"id":72,"appid":1,"message":"\[Matrix Conduit\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:14.607896086Z"}

2023-02-24T09:23:13.128Z INFO: WebSocket(7): received message {"id":71,"appid":1,"message":"\[Matrix nginx\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:14.076595116Z"}

2023-02-24T09:23:12.812Z INFO: WebSocket(7): received message {"id":70,"appid":1,"message":"\[Matrix Element\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:13.761353381Z"}

2023-02-24T09:23:12.017Z INFO: WebSocket(7): received message {"id":69,"appid":1,"message":"\[Groceries Backend\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:12.963504051Z"}

2023-02-24T09:23:11.590Z INFO: WebSocket(7): received message {"id":68,"appid":1,"message":"\[Groceries frontend\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:12.515075943Z"}

2023-02-24T09:23:11.232Z INFO: WebSocket(7): received message {"id":67,"appid":1,"message":"\[Caddy\] \[✅ Up\] running","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:23:12.175938939Z"}

2023-02-24T09:07:07.193Z INFO: WebSocket(7): received message {"id":66,"appid":1,"message":"\[Matrix Element\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:07:08.136678546Z"}

2023-02-24T09:06:38.805Z INFO: WebSocket(7): received message {"id":65,"appid":1,"message":"\[Bazarr\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:06:39.670357883Z"}

2023-02-24T09:06:15.810Z INFO: WebSocket(7): received message {"id":64,"appid":1,"message":"\[Jellyfin\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:06:16.662057327Z"}

2023-02-24T09:06:04.747Z INFO: WebSocket(7): received message {"id":63,"appid":1,"message":"\[Groceries Backend\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:06:05.614673859Z"}

2023-02-24T09:05:56.434Z INFO: WebSocket(7): received message {"id":62,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T09:05:57.302297263Z"}

2023-02-24T09:05:53.656Z INFO: WebSocket(7): received message {"id":61,"appid":1,"message":"\[Prowlarr\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:05:54.540724112Z"}

2023-02-24T09:05:24.281Z INFO: WebSocket(7): received message {"id":60,"appid":1,"message":"\[Radarr\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:05:25.071725586Z"}

2023-02-24T09:05:24.175Z INFO: WebSocket(7): received message {"id":59,"appid":1,"message":"\[Caddy\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:05:25.041113111Z"}

2023-02-24T09:05:13.092Z INFO: WebSocket(7): received message {"id":58,"appid":1,"message":"\[Gotify\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:05:13.953107653Z"}

2023-02-24T09:05:13.001Z INFO: WebSocket(7): received message {"id":57,"appid":1,"message":"\[Groceries frontend\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:05:13.947195214Z"}

2023-02-24T09:04:56.073Z INFO: WebSocket(7): received message {"id":56,"appid":1,"message":"\[Authelia\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:04:56.912681596Z"}

2023-02-24T09:04:55.959Z INFO: WebSocket(7): received message {"id":55,"appid":1,"message":"\[Sonarr\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:04:56.906507999Z"}

2023-02-24T09:04:26.736Z INFO: WebSocket(7): received message {"id":54,"appid":1,"message":"\[Jellyseerr\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:04:27.685886285Z"}

2023-02-24T09:03:41.227Z INFO: WebSocket(7): received message {"id":53,"appid":1,"message":"\[Seafile Memcached\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:03:42.158492983Z"}

2023-02-24T09:03:40.163Z INFO: WebSocket(7): received message {"id":52,"appid":1,"message":"\[Matrix Conduit\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:03:41.050922029Z"}

2023-02-24T09:03:11.835Z INFO: WebSocket(7): received message {"id":51,"appid":1,"message":"\[Matrix nginx\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:03:12.686443205Z"}

2023-02-24T09:03:11.732Z INFO: WebSocket(7): received message {"id":50,"appid":1,"message":"\[Seafile MySQL\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:03:12.678905866Z"}

2023-02-24T09:02:41.215Z INFO: WebSocket(7): received message {"id":49,"appid":1,"message":"\[Seafile\] \[🔴 Down\] connect ECONNREFUSED /var/run/docker.sock","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:02:42.160926555Z"}

2023-02-24T09:02:25.231Z INFO: WebSocket(7): received message {"id":48,"appid":1,"message":"\[Vaultwarden\] \[🔴 Down\] read ECONNRESET","title":"Uptime-Kuma","priority":8,"date":"2023-02-24T09:02:25.899893379Z"}

2023-02-24T08:16:28.781Z INFO: WebSocket(7): received message {"id":47,"appid":4,"message":"Indexers unavailable due to failures: kickasstorrents.to","title":"Health Check Failure","priority":5,"date":"2023-02-24T08:16:29.71951733Z"}

2023-02-24T08:16:25.723Z INFO: WebSocket(7): received message {"id":46,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T08:16:25.823104944Z"}

2023-02-24T07:43:24.296Z INFO: WebSocket(7): received message {"id":45,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T07:43:24.971768558Z"}

2023-02-24T07:11:00.650Z INFO: WebSocket(7): received message {"id":44,"appid":4,"message":"Indexers unavailable due to failures: kickasstorrents.to","title":"Health Check Failure","priority":5,"date":"2023-02-24T07:11:01.551172713Z"}

2023-02-24T07:10:53.120Z INFO: WebSocket(7): received message {"id":43,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T07:10:54.058643541Z"}

2023-02-24T07:05:38.777Z INFO: WebSocket(7): opened
2023-02-24T07:05:38.504Z INFO: WebSocket(7): starting...
2023-02-24T07:05:38.503Z INFO: WebSocket(6): closing existing connection.
2023-02-24T07:04:38.502Z INFO: WebSocket: scheduling a restart in 60 second(s) (via alarm manager)
2023-02-24T07:04:38.484Z INFO: WebSocket(6): Network not connected
2023-02-24T07:04:38.474Z ERROR: WebSocket(6): failure  Message: 
javax.net.ssl.SSLException: Read error: ssl=0x721864a0c8: I/O error during system call, Software caused connection abort
	at com.android.org.conscrypt.NativeCrypto.SSL\_read(Native Method)
	at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
	at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:549)
	at okio.Okio$2.read(Okio.java:140)
	at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
	at okio.RealBufferedSource.request(RealBufferedSource.java:68)
	at okio.RealBufferedSource.require(RealBufferedSource.java:61)
	at okio.RealBufferedSource.readByte(RealBufferedSource.java:74)
	at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
	at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
	at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
	at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:919)

2023-02-24T06:35:44.897Z INFO: Removing message with id 37
2023-02-24T06:35:41.759Z INFO: Removing message with id 36
2023-02-24T06:35:40.981Z INFO: Removing message with id 38
2023-02-24T06:35:37.649Z INFO: Removing message with id 39
2023-02-24T06:35:34.501Z INFO: Removing message with id 40
2023-02-24T06:35:34.301Z INFO: Removing message with id 41
2023-02-24T06:35:34.020Z INFO: Removing message with id 42
2023-02-24T06:35:15.711Z ERROR: uncaught exception
java.lang.NullPointerException
	at com.github.gotify.messages.provider.MessageImageCombiner.combine(MessageImageCombiner.kt:13)
	at com.github.gotify.messages.provider.MessageFacade.get(MessageFacade.kt:12)
	at com.github.gotify.messages.provider.MessageFacade.loadMore(MessageFacade.kt:31)
	at com.github.gotify.messages.provider.MessageFacade.loadMoreIfNotPresent(MessageFacade.kt:38)
	at com.github.gotify.messages.MessagesActivity.updateMessagesForApplication(MessagesActivity.kt:563)
	at com.github.gotify.messages.MessagesActivity.access$updateMessagesForApplication(MessagesActivity.kt:63)
	at com.github.gotify.messages.MessagesActivity$updateMessagesForApplication$1.invokeSuspend(Unknown Source:17)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
	Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: \[StandaloneCoroutine{Cancelling}@2f4767c, Dispatchers.IO\]

2023-02-24T06:35:15.657Z INFO: Loading more messages for -1
2023-02-24T06:35:15.628Z INFO: Entering MessagesActivity
2023-02-24T06:22:29.057Z INFO: WebSocket(6): received message {"id":42,"appid":4,"message":"Indexers unavailable due to failures: kickasstorrents.to","title":"Health Check Failure","priority":5,"date":"2023-02-24T06:22:29.930238778Z"}

2023-02-24T06:22:22.103Z INFO: WebSocket(6): received message {"id":41,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T06:22:23.040789484Z"}

2023-02-24T06:22:16.694Z INFO: WebSocket(6): received message {"id":40,"appid":3,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)","title":"Health Check Failure","priority":5,"date":"2023-02-24T06:22:17.580366364Z"}

2023-02-24T04:13:56.433Z INFO: WebSocket(6): received message {"id":39,"appid":4,"message":"Indexers unavailable due to failures: kickasstorrents.to","title":"Health Check Failure","priority":5,"date":"2023-02-24T04:13:57.27186168Z"}

2023-02-24T04:13:48.992Z INFO: WebSocket(6): received message {"id":38,"appid":2,"message":"Indexers unavailable due to failures: kickasstorrents.to (Prowlarr)\\n","title":"Health Check Failure","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-24T04:13:49.837904547Z"}

2023-02-24T03:39:38.718Z INFO: WebSocket(6): received message {"id":37,"appid":4,"message":"Applications unavailable due to failures for more than 6 hours: Readarr","title":"Health Check Failure","priority":5,"date":"2023-02-24T03:39:39.520640575Z"}

2023-02-23T23:17:43.743Z INFO: WebSocket(6): received message {"id":36,"appid":4,"message":"Indexers unavailable due to failures: kickasstorrents.to","title":"Health Check Failure","priority":5,"date":"2023-02-23T23:17:44.561120093Z"}

2023-02-23T22:29:30.843Z INFO: WebSocket(6): opened
2023-02-23T22:29:30.738Z INFO: WebSocket(6): starting...
2023-02-23T22:29:30.737Z INFO: WebSocket(5): closing existing connection.
2023-02-23T22:28:30.733Z INFO: WebSocket: scheduling a restart in 60 second(s) (via alarm manager)
2023-02-23T22:28:30.715Z ERROR: WebSocket(5): failure  Message: 
javax.net.ssl.SSLException: Read error: ssl=0x721864a0c8: I/O error during system call, Software caused connection abort
	at com.android.org.conscrypt.NativeCrypto.SSL\_read(Native Method)
	at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
	at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:549)
	at okio.Okio$2.read(Okio.java:140)
	at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
	at okio.RealBufferedSource.request(RealBufferedSource.java:68)
	at okio.RealBufferedSource.require(RealBufferedSource.java:61)
	at okio.RealBufferedSource.readByte(RealBufferedSource.java:74)
	at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
	at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
	at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
	at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:919)

2023-02-23T22:03:10.854Z INFO: WebSocket(5): opened
2023-02-23T22:03:10.582Z INFO: WebSocket(5): starting...
2023-02-23T22:03:10.581Z INFO: WebSocket(4): closing existing connection.
2023-02-23T22:02:10.579Z INFO: WebSocket: scheduling a restart in 60 second(s) (via alarm manager)
2023-02-23T22:02:10.525Z INFO: WebSocket(4): Network not connected
2023-02-23T22:02:10.480Z ERROR: WebSocket(4): failure  Message: 
javax.net.ssl.SSLException: Read error: ssl=0x721864a0c8: I/O error during system call, Software caused connection abort
	at com.android.org.conscrypt.NativeCrypto.SSL\_read(Native Method)
	at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
	at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:549)
	at okio.Okio$2.read(Okio.java:140)
	at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
	at okio.RealBufferedSource.request(RealBufferedSource.java:68)
	at okio.RealBufferedSource.require(RealBufferedSource.java:61)
	at okio.RealBufferedSource.readByte(RealBufferedSource.java:74)
	at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
	at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
	at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
	at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:919)

2023-02-23T21:39:07.870Z INFO: WebSocket(4): received message {"id":35,"appid":4,"message":"Applications unavailable due to failures for more than 6 hours: Readarr","title":"Health Check Failure","priority":5,"date":"2023-02-23T21:39:08.405375649Z"}

2023-02-23T19:53:29.098Z INFO: WebSocket(4): opened
2023-02-23T19:53:28.976Z INFO: WebSocket(4): starting...
2023-02-23T19:53:28.975Z INFO: WebSocket(3): closing existing connection.
2023-02-23T19:27:36.577Z INFO: WebSocket: scheduling a restart in 60 second(s) (via alarm manager)
2023-02-23T19:27:36.555Z ERROR: WebSocket(3): failure  Message: 
java.net.SocketTimeoutException: sent ping but didn't receive pong within 60000ms (after 35 successful ping/pongs)
	at okhttp3.internal.ws.RealWebSocket.writePingFrame(RealWebSocket.java:546)
	at okhttp3.internal.ws.RealWebSocket$PingRunnable.run(RealWebSocket.java:530)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:307)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:302)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:919)

2023-02-23T17:39:20.699Z INFO: WebSocket(3): opened
2023-02-23T17:39:20.592Z INFO: WebSocket(3): starting...
2023-02-23T17:39:20.591Z INFO: WebSocket(2): closing existing connection.
2023-02-23T17:38:20.572Z INFO: WebSocket: scheduling a restart in 60 second(s) (via alarm manager)
2023-02-23T17:38:20.524Z ERROR: WebSocket(2): failure  Message: 
javax.net.ssl.SSLException: Read error: ssl=0x71b3fea0c8: I/O error during system call, Software caused connection abort
	at com.android.org.conscrypt.NativeCrypto.SSL\_read(Native Method)
	at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
	at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:549)
	at okio.Okio$2.read(Okio.java:140)
	at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
	at okio.RealBufferedSource.request(RealBufferedSource.java:68)
	at okio.RealBufferedSource.require(RealBufferedSource.java:61)
	at okio.RealBufferedSource.readByte(RealBufferedSource.java:74)
	at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
	at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
	at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
	at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:919)

2023-02-23T15:50:04.853Z INFO: Removing message with id 34
2023-02-23T15:49:59.610Z ERROR: uncaught exception
java.lang.NullPointerException
	at com.github.gotify.messages.provider.MessageImageCombiner.combine(MessageImageCombiner.kt:13)
	at com.github.gotify.messages.provider.MessageFacade.get(MessageFacade.kt:12)
	at com.github.gotify.messages.provider.MessageFacade.loadMore(MessageFacade.kt:31)
	at com.github.gotify.messages.provider.MessageFacade.loadMoreIfNotPresent(MessageFacade.kt:38)
	at com.github.gotify.messages.MessagesActivity.updateMessagesForApplication(MessagesActivity.kt:563)
	at com.github.gotify.messages.MessagesActivity.access$updateMessagesForApplication(MessagesActivity.kt:63)
	at com.github.gotify.messages.MessagesActivity$updateMessagesForApplication$1.invokeSuspend(Unknown Source:17)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
	Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: \[StandaloneCoroutine{Cancelling}@3cada96, Dispatchers.IO\]

2023-02-23T15:49:59.445Z INFO: Loading more messages for -1
2023-02-23T15:49:59.430Z INFO: WebSocket(2): opened
2023-02-23T15:49:59.422Z INFO: Entering MessagesActivity
2023-02-23T15:49:59.368Z INFO: Server version: 2.2.4@2023-01-10-18:33:52
2023-02-23T15:49:59.138Z INFO: WebSocket(2): starting...
2023-02-23T15:49:59.136Z INFO: Starting WebSocketService
2023-02-23T15:49:59.135Z INFO: WebSocket(1): closing existing connection.
2023-02-23T15:49:59.118Z INFO: Authenticated as mat
2023-02-23T15:49:58.857Z INFO: Entering InitializationActivity
2023-02-23T15:49:19.956Z INFO: WebSocket(1): received message {"id":34,"appid":2,"message":"This is a test message from Sonarr\\n","title":"Test Notification","priority":5,"extras":{"client::display":{"contentType":"text/plain"}},"date":"2023-02-23T15:49:20.689271933Z"}

2023-02-23T15:47:05.130Z INFO: Loading more messages for -1
2023-02-23T15:47:05.108Z INFO: WebSocket(1): opened
2023-02-23T15:47:05.053Z INFO: Entering MessagesActivity
2023-02-23T15:47:04.979Z INFO: Server version: 2.2.4@2023-01-10-18:33:52
2023-02-23T15:47:04.896Z INFO: WebSocket(1): starting...
2023-02-23T15:47:04.887Z INFO: Starting WebSocketService
2023-02-23T15:47:04.864Z INFO: Create WebSocketService
2023-02-23T15:47:04.846Z INFO: Authenticated as mat
2023-02-23T15:47:04.672Z INFO: Entering InitializationActivity
2023-02-23T15:46:23.053Z INFO: Entering LoginActivity
2023-02-23T15:46:22.977Z INFO: Entering InitializationActivity
Server logs
[GIN] 2023/02/24 - 12:03:04 | 200 |      31.194µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:03:35 | 200 |      29.522µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:04:06 | 200 |      31.381µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:04:36 | 200 |      33.311µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:05:07 | 200 |      23.964µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:05:38 | 200 |      28.521µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:06:09 | 200 |      29.861µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:06:40 | 200 |      28.754µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:07:11 | 200 |      37.882µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:07:42 | 200 |      29.585µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:08:13 | 200 |      27.294µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:08:44 | 200 |      27.915µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:09:15 | 200 |      31.305µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:09:46 | 200 |      24.805µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:10:17 | 200 |      33.774µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:10:48 | 200 |      29.456µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:11:19 | 200 |      26.777µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:11:50 | 200 |      31.866µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:12:21 | 200 |      33.201µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:12:52 | 200 |      31.119µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:13:23 | 200 |      31.617µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:13:54 | 200 |      30.502µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:14:25 | 200 |      27.327µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:14:56 | 200 |       27.38µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:15:27 | 200 |      31.914µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:15:58 | 200 |      26.997µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:16:29 | 200 |      26.665µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:17:00 | 200 |       33.12µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:17:31 | 200 |      29.573µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:18:02 | 200 |      30.908µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:18:33 | 200 |      40.422µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:19:04 | 200 |      29.908µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:19:35 | 200 |      30.857µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:20:02 | 200 |   13.523005ms |      10.89.10.2 | POST     "/message?token=[masked]"
[GIN] 2023/02/24 - 12:20:03 | 200 |     166.932µs |      10.89.10.2 | GET      "/static/defaultapp.png"
[GIN] 2023/02/24 - 12:20:06 | 200 |      31.632µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:20:37 | 200 |      28.951µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:21:08 | 200 |      27.732µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:21:39 | 200 |       28.65µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:22:10 | 200 |      30.026µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:22:41 | 200 |     244.803µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:23:12 | 200 |      31.215µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:23:43 | 200 |      26.702µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:24:13 | 200 |      29.527µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:24:44 | 200 |      32.897µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:25:15 | 200 |      33.521µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:25:46 | 200 |      29.142µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:26:17 | 200 |      28.193µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:26:48 | 200 |      27.738µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:27:18 | 200 |      30.757µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:27:49 | 200 |      29.304µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:28:20 | 200 |      55.285µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:28:51 | 200 |      36.911µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:29:22 | 200 |      28.889µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:29:53 | 200 |      31.546µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:30:24 | 200 |      26.661µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:30:55 | 200 |      33.499µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:31:26 | 200 |      30.424µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:31:57 | 200 |      32.258µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:32:27 | 200 |      26.329µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:32:58 | 200 |      29.769µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:33:29 | 200 |       31.48µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:34:00 | 200 |      26.459µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:34:31 | 200 |      27.764µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:35:01 | 200 |      34.849µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:35:32 | 200 |      26.617µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:36:03 | 200 |      33.374µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:36:34 | 200 |      25.826µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:37:05 | 200 |      33.716µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:37:36 | 200 |      31.704µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:38:07 | 200 |      27.573µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:38:38 | 200 |      26.829µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:39:09 | 200 |      47.459µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:39:16 | 200 |    1.111712ms |      10.89.10.2 | GET      "/"
[GIN] 2023/02/24 - 12:39:26 | 200 |    1.266351ms |      10.89.10.2 | GET      "/"
[GIN] 2023/02/24 - 12:39:29 | 404 |       23.94µs |      10.89.10.2 | GET      "/favicon.ico"
[GIN] 2023/02/24 - 12:39:40 | 200 |      32.821µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:40:11 | 200 |      33.728µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:40:42 | 200 |      32.272µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:41:13 | 200 |       29.26µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:41:44 | 200 |      30.857µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:42:15 | 200 |      32.562µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:42:46 | 200 |      27.353µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:43:17 | 200 |      36.239µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:43:48 | 200 |      46.815µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:44:19 | 200 |      38.345µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:44:50 | 200 |       27.36µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:45:21 | 200 |      34.034µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:45:52 | 200 |      30.422µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:46:23 | 200 |      31.197µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:46:54 | 200 |      30.639µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:47:25 | 200 |      25.303µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:47:32 | 200 |    1.009073ms |      10.89.10.2 | GET      "/"
[GIN] 2023/02/24 - 12:47:32 | 200 |     576.294µs |      10.89.10.2 | GET      "/static/css/2.0f3898ba.chunk.css"
[GIN] 2023/02/24 - 12:47:32 | 200 |    5.793374ms |      10.89.10.2 | GET      "/static/js/main.58f49b22.chunk.js"
[GIN] 2023/02/24 - 12:47:32 | 200 |   43.320603ms |      10.89.10.2 | GET      "/static/js/2.24f69523.chunk.js"
[GIN] 2023/02/24 - 12:47:32 | 200 |    1.936051ms |      10.89.10.2 | GET      "/current/user"
[GIN] 2023/02/24 - 12:47:32 | 200 |     536.419µs |      10.89.10.2 | GET      "/application"
[GIN] 2023/02/24 - 12:47:32 | 200 |     705.714µs |      10.89.10.2 | GET      "/static/media/roboto-latin-400.176f8f5b.woff2"
[GIN] 2023/02/24 - 12:47:32 | 200 |    1.299977ms |      10.89.10.2 | GET      "/message?since=0"
[GIN] 2023/02/24 - 12:47:32 | 200 |     693.776µs |      10.89.10.2 | GET      "/static/media/roboto-latin-500.f5b74d7f.woff2"
[GIN] 2023/02/24 - 12:47:32 | 200 |     259.435µs |      10.89.10.2 | GET      "/stream?token=[masked]"
[GIN] 2023/02/24 - 12:47:32 | 200 |     165.898µs |      10.89.10.2 | GET      "/static/defaultapp.png"
[GIN] 2023/02/24 - 12:47:32 | 200 |    1.793087ms |      10.89.10.2 | GET      "/static/favicon.ico"
[GIN] 2023/02/24 - 12:47:32 | 200 |     106.138µs |      10.89.10.2 | GET      "/manifest.json"
[GIN] 2023/02/24 - 12:47:40 | 200 |   12.361923ms |      10.89.10.2 | DELETE   "/message"
[GIN] 2023/02/24 - 12:47:40 | 200 |     297.006µs |      10.89.10.2 | GET      "/message?since=0"
[GIN] 2023/02/24 - 12:47:49 | 200 |     706.427µs |      10.89.10.2 | GET      "/application/4/message?since=0"
[GIN] 2023/02/24 - 12:47:49 | 200 |    1.965171ms |      10.89.10.2 | GET      "/static/favicon.ico"
[GIN] 2023/02/24 - 12:47:52 | 200 |     494.338µs |      10.89.10.2 | GET      "/application"
[GIN] 2023/02/24 - 12:47:52 | 200 |    1.746446ms |      10.89.10.2 | GET      "/static/favicon.ico"
[GIN] 2023/02/24 - 12:47:56 | 200 |    5.796647ms |      10.89.10.2 | DELETE   "/application/4"
[GIN] 2023/02/24 - 12:47:56 | 200 |     425.191µs |      10.89.10.2 | GET      "/application"
[GIN] 2023/02/24 - 12:47:56 | 200 |      30.405µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:48:27 | 200 |      36.233µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:48:58 | 200 |      52.422µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:49:29 | 200 |      30.222µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:50:00 | 200 |      43.293µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:50:30 | 200 |      31.195µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:51:01 | 200 |      27.972µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:51:32 | 200 |      31.208µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:52:03 | 200 |      52.551µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:52:34 | 200 |       55.54µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:53:05 | 200 |      35.602µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:53:36 | 200 |      33.442µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:54:07 | 200 |      31.141µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:54:38 | 200 |      29.832µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:55:09 | 200 |      39.115µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:55:40 | 200 |      34.126µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:56:11 | 200 |      45.653µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:56:42 | 200 |      27.263µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:57:13 | 200 |      28.716µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:57:44 | 200 |      28.025µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:58:15 | 200 |      31.007µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:58:46 | 200 |      61.423µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:59:17 | 200 |      32.332µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 12:59:48 | 200 |      33.429µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:00:19 | 200 |      33.634µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:00:50 | 200 |      29.862µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:01:21 | 200 |      30.592µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:01:52 | 200 |      55.208µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:02:23 | 200 |      26.284µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:02:54 | 200 |      38.102µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:03:25 | 200 |      32.271µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:03:56 | 200 |      35.974µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:04:27 | 200 |      31.077µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:04:58 | 200 |      31.416µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:05:28 | 200 |      26.474µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:05:59 | 200 |      28.552µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:06:30 | 200 |       30.81µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:07:01 | 200 |      43.305µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:07:32 | 200 |       27.28µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:08:03 | 200 |      29.465µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:08:34 | 200 |      60.355µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:09:05 | 200 |      32.854µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:09:36 | 200 |      27.391µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:10:07 | 200 |      35.691µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:10:38 | 200 |      27.192µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:11:09 | 200 |      28.055µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:11:39 | 200 |      30.548µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:12:10 | 200 |      27.767µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:12:40 | 200 |       31.86µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:13:11 | 200 |      27.879µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:13:42 | 200 |      30.365µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:14:13 | 200 |      31.811µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:14:44 | 200 |      31.623µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:15:15 | 200 |      30.576µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:15:46 | 200 |      31.497µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:16:17 | 200 |      40.822µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:16:48 | 200 |      33.251µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:17:19 | 200 |      30.266µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:17:50 | 200 |      32.436µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:18:21 | 200 |      35.794µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:18:52 | 200 |      29.403µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:19:23 | 200 |      26.337µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:19:54 | 200 |      33.781µs |             ::1 | GET      "/health"
[GIN] 2023/02/24 - 13:20:25 | 200 |      27.779µs |             ::1 | GET      "/health"

@jmattheis
Copy link
Member

The logs look fine, I don't know why gotify requires that much battery on your device, and I also don't know how to debug this.

@MathieuMoalic
Copy link
Author

arr.. thanks for trying to help me. For the time being I have to switch to another notification service because my phone can't last a whole day if I have gotify running. Hit me up if something changes, I would be happy to give it a second shot.

@jmattheis jmattheis closed this as not planned Won't fix, can't repro, duplicate, stale Feb 25, 2023
@hydrargyrum
Copy link

I also observe heavy battery consumption from gotify app (it's the main consumer, according to battery usage report).

@jmattheis would an optional feature to check gotify server every, say, 5-10 minutes, be less battery-consuming than maintaining a websocket connection?

@jmattheis
Copy link
Member

It could improve battery usage, but I don't know if something like this should be included into gotify, as only a pretty small group do have these battery problems.

@hydrargyrum
Copy link

Only a small group report it, that doesn't mean anybody else doesn't have it!

@PanForPancakes
Copy link

Bump, Gotify consumes too much battery on android
My battery usage report states ~26% for Gotify that didn't even receive any notifications, for comparison Telegram is at 7%, and I use it A LOT more

IMO this issue should be reopened @jmattheis

@jmattheis
Copy link
Member

You can't really compare apps that use FCM with Gotify. Gotify requires a persistent connection to gotify/server and this consumes much more energy than something like telegram where the app only wakes up when there is a new message.

#379 together with the settings mentioned in the ticket could improve battery life.

It's also likely that the battery usage report isn't accurate and misreporting gotify to have a higher usage, because it's always running in the background.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

5 participants