Back
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
TypeScript
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
TypeScript
[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)
TL;DR
Developers are encountering a 'Concurrent modification during iteration' error when using RealTime subscribe with appwrite SDK, which causes the RealTime to stop working after about 30 seconds. This issue arises while attempting to subscribe to realtime events. The error message indicates a problem with a _Map.
This is my nginx configuration
TypeScript
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
- Problems with adding my custom domain
- Can't push functions when self-hosting o...
Hello, I'm a bit new to appwrite functions and recently hosted a fresh 1.7.4 on my portainer setup. Tried to create a new function and when trying to push it I ...
- Self-hosted Appwrite keeps slowing down ...
For some reason my self-hosted instance of Appwrite periodically slows down so much and becomes unresponsive (console, APIs, everything). I keep restarting the ...
