Ken A. (shaarlss)Original post
Web Developer
Hi! I just want to ask here if there's any workaround with the disconnect issues we're encountering when subscribing to realtime events in react native using expo and also having this INVALID_STATE_ERR.
ERROR Realtime got disconnected. Reconnect will be attempted in 1 seconds. Stream end encountered
ERROR Error: INVALID_STATE_ERR, js engine: hermes
Here's how we implemented in subscribing for realtime events based off on your documentations:
useEffect(() => {
let unsubscribe = null;
const setupRealtimeListeners = async () => {
try {
unsubscribe = client.subscribe(
[
`databases.${secrets.appwriteConfig.databaseId}.collections.${secrets.appwriteConfig.messagesCollectionsId}.documents`,
`databases.${secrets.appwriteConfig.databaseId}.collections.${secrets.appwriteConfig.chatsReadCollectionId}.documents`,
],
(response) => {
if (response.payload?.$collectionId === secrets.appwriteConfig.messagesCollectionsId) {
handleRealTimeMessagesEvents(response);
} else if (response.payload?.$collectionId === secrets.appwriteConfig.chatsReadCollectionId) {
handleRealTimeMessageReadEvents(response);
}
},
);
} catch (err) {
console.error("Realtime not ready or subscription failed:", err);
}
};
setupRealtimeListeners();
return () => {
if (unsubscribe) unsubscribe();
chatIdRef.current = null;
};
}, []);
@Cara Santos @Luis P. @Ian R.
Summary
Developers are experiencing realtime disconnects and an 'INVALID_STATE_ERR' when subscribing to realtime events in React Native using Expo. The issue may be caused by problems with the hermes JS engine. One potential workaround is to ensure that the realtime setup and listeners are properly implemented in the code. Always refer to the proper documentation for guidance.