RealTime subscribe throws Concurrent modification during iteration: _Map len:0
- 0
- Self Hosted
- Flutter
- Realtime

Hi I have installed appwrite in my ubuntu server with docker and nginx. Due to my server already has some apps running with pm2 I had to run my appwrite app using a reverse proxy.
When I use the next code to subscribe to realtime events it works for a few seconds
final Realtime _realtime = Realtime(client);
.
.
.
final userChannel = 'databases.my_db.collections.users.documents.$userId';
final membershipChannel = 'databases.my_db.collections.memberships.documents.$userId';
// this works for around 30 seconds, after that time the appwrite sdk throws
// Unhandled Exception: Concurrent modification during iteration: _Map len:0.
// And the realtime stop working
_subscription = _realtime.subscribe(
[userChannel, membershipChannel],
);
Next after a few seconds I have this error in my console and the realtime stops working
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Concurrent modification during iteration: _Map len:0.
#0 _CompactIterator.moveNext (dart:collection-patch/compact_hash.dart:714:7)
#1 RealtimeMixin._createSocket.<anonymous closure> (package:appwrite/src/realtime_mixin.dart:91:49)
#2 _RootZone.runGuarded (dart:async/zone.dart:1582:10)
#3 _BufferingStreamSubscription._sendDone.sendDone (dart:async/stream_impl.dart:392:13)
#4 _BufferingStreamSubscription._sendDone (dart:async/stream_impl.dart:402:7)
#5 _BufferingStreamSubscription._close (dart:async/stream_impl.dart:291:7)
#6 _ForwardingStream._handleDone (dart:async/stream_pipe.dart:99:10)
#7 _ForwardingStreamSubscription._handleDone (dart:async/stream_pipe.dart:161:13)
#8 _RootZone.runGuarded (dart:async/zone.dart:1582:10)
#9 _BufferingStreamSubscription._sendDone.sendDone (dart:async/stream_impl.dart:392:13)

This is my nginx configuration
server {
server_name app.codergym.fit;
location / {
proxy_pass http://localhost:81;
proxy_set_header Host $host;
}
location /v1/realtime {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:81/v1/realtime;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/encoding.meedu.app/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/encoding.meedu.app/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = app.codergym.fit) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name app.codergym.fit;
listen 80;
return 404; # managed by Certbot
}
Recommended threads
- Database DeleteDocuments triggered via D...
Running self hosted 1.7.4. Have a dart cleanup function that deletes stale documents from a collection. Recently updated the function to use DeleteDocuments ins...
- Microsoft Oauth2 gets auto disabled
I'm runnin appwrite self hosted 1.7.4 and once every few hours the provider keeps getting disabled for whatever reason. I don't see anything in the logs and wo...
- Google & Apple OAuth2 not working in App...
Two days ago, the OAuth2-based login/signup was working as expected. Today, when I try to log in with an existing user using Apple OAuth2, it shows the message ...
