User presence in Android/iOS App + Presence Service Cap Problem

Description

Hello, dear community! We have just completed a migration from Snap (RC 7) to Docker (RC 8). The entire process—including backup and restore—went very smoothly. However, we have now noticed two issues:

  1. In the RC Android and iOS app (actually v4.72), user status is not being displayed (it appears as a gray circle). It works without any issues in the Windows app and in the browser. Neither reinstalling the apps nor clearing the server cache has helped. Do you have any ideas?
  2. I am not entirely sure, but I suspect that the Oplog was active back when we were running on Snap with MongoDB v7. This is because, now that we are on Docker with MongoDB v8, we are encountering a phenomenon where the “Presence Service Cap” is auto disabled, and no sessions are being counted under “Subscriptions.” It permanently displays “0/200” for us. Do you have any ideas regarding this?
    Thanks in advance for your support!

Server Setup Information

  • Version of Rocket.Chat Server: 8.4.1
  • Operating System: Ubuntu 22.04 LTS
  • Deployment Method: Docker Compose
  • Number of Running Instances: 1
  • DB Replicaset Oplog:
  • NodeJS Version: 22.22.2
  • MongoDB Version: 8.2.9 / wiredTiger
  • Proxy: yes
  • Firewalls involved: yes

Any additional Information

First, get off snaps. Now. They arw no longer a “supported” option.

You don’t mention the licence version but at a guess it’s CE.

Seems like they’ve might have actually capped the presence limit in CE.

(CE was never “user” limited, but node made it difficult to scale beyond about 200 active users)

Seems they might have tried to clamp down on that more.

I will ask for an official comment.

Thanks for your fast reply. Yes we have CE.
And we no longer use Snap. We have switched to Docker.

Sorry - I misread your post!

I have asked the man who knows. I’ll come back if and when I get an answer.

OK - there are no defined user limits - just performance will suffer past about 150 active users.

It sounds more like comms issues.

What reverse proxy are you using and are your https certs all up to date?

(viz a viz oplog - please search for it in the docs so you understand it a bit more but don’t think that is relevant)

Thanks for your fast support.

Means… in CE Version we dont have a Session Counter?
The Presence Cap Service is not in use, cuz we operate in community plan?

Proxy:
We use actually a Sophos WAF, but change soon to cloudflare.
Certs are valid with LetsEncrypt.

MongoDB:
I also don’t think it’s due to the oplog.

MobileApp:
What do you think is the reason why we currently don’t see user presence statuses in the Android and iOS apps in RC version 8.4.1? Maybe a known issue?

I said that having asked there is no fixed limit in CE.

Your issues lie elsewhere.

As this affects mobiles the most common issue on mobile is websockets not working correctly, usually due to a misconfigured proxy/https. As you have just migrated from snaps to docker I suggest you check DNS, https etc.

(I strongly suggest you don’t touch cloudflare until you get this all working. It’ll just make it worse)

Its not my fault.

I downgrade from 8.4 to 8.3.3 and the mobile App shows user status.

There must definitely be a change in 8.4 that alters something in the API for mobile devices.

Kk.

NB. Downgrading the DB is likely to cause issues - see docs/elsewhere.

(Only way to do it without issue is via a backup and restore of the original version to the correct db/rocket versions, and then upgrade again.)

However, it proves a point and I have asked for a comment.

Thanks for your feedback. Then we misunderstood each other. The MongoDB is still on v8.2.9; I didn’t perform a downgrade there.

I was referring to the Rocket.Chat version.

The downgrade I just performed was merely an experiment to see if it would make a difference. Now I can confirm: yes, it does make a difference. We are now using RC 8.3.3, and on this version, the mobile apps work for us.

As for why that is—who knows? Perhaps something will be fixed in a future release or update of the mobile apps (Android, iOS).

Yup.

Same thing applies. Been written multiple times (often by me). Rocket makes unseen db changes during upgrades that can be catastrophic on downgrade. This is true with many dbs, but particularly with mongo. YMMV.

Rocket is NOT a toy or something you can just flip versions without a thought.

Only safe “downgrade” is to restore an older version to the sams version levels on Rocket & Mongo, and then upgrade.

Any else risks problems. Hence well documented regular backups are essential.

Don’t shoot the messenger. I don’t work here.

That’s good to know—especially the database changes involved in upgrades. I wasn’t aware of that.

I hope this doesn’t cause us any problems with future updates.

Thanks, reetp!

Has been mentioned multiple times in the last decade… forums, bugs, docs…

I’ve referred this back to my contact who has asked Q&A to look. I have no further control.

Hi, short feedback. In new rc v. 8.4.2 release, the presence problem in mobile app is away :slight_smile: