Skip to content
Back

[Self-hosted] Realtime crashes with "Missing channels" + fatal Swoole\Server::exist() TypeError when

  • 0
  • Self Hosted
  • Web
Jasper
11 May, 2026, 09:19

I'm unable to use the realtime connection on the latest appwrite client (npm)

When connecting to realtime it's getting stuck in a loop

browser prints: Realtime disconnected. Re-connecting in 1 seconds.
Server prints: Connection open (user: 707) [Error] Type: Appwrite\Extend\Exception [Error] Message: Missing channels [Error] File: /usr/src/code/app/realtime.php [Error] Line: 705
Connection close: 707

Fatal error: Uncaught TypeError: Swoole\Server::exist(): Argument #1 ($fd) must be of type int, array given
in /usr/src/code/vendor/utopia-php/websocket/src/WebSocket/Adapter/Swoole.php:54

TypeScript
  import { Account, Channel, Client, Realtime, TablesDB } from "appwrite";

  const client = new Client()
    .setEndpoint(APPWRITE_ENDPOINT)
    .setProject(APPWRITE_PROJECT_ID);
                                                                                                                                                                                        
  const realtime = new Realtime(client);
                                                                                                                                                                                        
  realtime.onOpen(() => {                                                                                                                                                             
    console.log("Realtime connection opened"); // fires, then immediately drops
  });

  realtime.subscribe(
    Channel.tablesdb(DATABASE_ID).table(COLLECTION_ID),
    (event) => {                                                                                                                                                                        
      console.log("Realtime event:", event);
    },                                                                
  );   ```

  When downgrading the SDK to appwrite@24.2.0 it's able to connect to realtime without any issues.
TL;DR
The self-hosted version of the SDK is not up-to-date with the Cloud version, causing compatibility issues. The suggestion is for Appwrite to use the Github repo directly for their Cloud version to avoid discrepancies in versions. Additionally, adding tagged versions like `app-1.9.0` could help users identify compatibility more easily.
Ibaraki Douji
11 May, 2026, 11:07

the SDK follow the Cloud appwrite versions which is 1.9.2, tho the self hosted latest is 1.9.0, iirc 1.9.0 correspond to the SDK appwrite@23

Jasper
11 May, 2026, 11:08

Yep just found that out from a other post about the self hosted release not being up to date yet

Jasper
11 May, 2026, 11:08

I wonder why the self hosted isn't up to date

Ibaraki Douji
11 May, 2026, 11:09

they release on Cloud, check if it's working correctly, if the version works correctly after X time, they release it into a stable self-hosted release

Ibaraki Douji
11 May, 2026, 11:12

it's too avoid possible bugs in self hosted, tho true, a better open source setup would be for appwrite to use directly the github repo for their cloud, but i don't think they will do that

(most self hosted / open source projects, have the public CE that they use as a submodule for their private cloud version, or the other way around, public CE with a private EE submodule in the public repo)

Jasper
11 May, 2026, 11:47

But that would cause issues like this where they are not synced in versions?

Jasper
11 May, 2026, 11:47

Like what i'm facing

Ibaraki Douji
11 May, 2026, 11:49

yes, tho i'm kinda hoping they would add tagged versions to says tag app-1.9.0 (or maybe even latest-sh) points to appwrite@23 and not latest so it's way easier for us to see the compatibility

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more