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
- Auth not working on expo react native
I'm trying to launch a development server with expo go and appwrite as a backend. On my windows pc, I've got a local docker instance of appwrite running as my b...
- Urgent help required - Could not resolve...
I upgraded my production environment to 1.8.0 but experienced issues with appwrite running out of worker threads. I downgraded back to 1.6.1 and restored the da...
- How to change "collection Id" to "collec...