Hi, I've got an issue where I can setup a realtime connection to listen to some tables, but some not all.
I have two tables history and users. Both can be queried by .listRows() and return results.
However when I listen to the databases.695d8f210018cf35bba0.tables.history.rows.* there are no events being sent to the client. databases.695d8f210018cf35bba0.tables.users.rows.* actually receives events.
My first thought was a permission issue, however both permissions are exactly the same (see screenshots).
The Appwrite instance is self-hosted and the domain is behind Cloudflare
// tables.history.rows.* doesn't work. tables.users.rows.* does work
this.appwriteRealtime?.subscribe(
"databases.695d8f210018cf35bba0.tables.history.rows.*",
(data) => {
console.log(data);
}
);
// how the history entries are created
this.appwriteTables?.createRow<History>({
databaseId: this.DATABASE_ID,
tableId: "history",
data,
rowId: ID.unique(),
});
Returned by the realtime connection:
{
"type": "connected",
"data": {
"channels": [
"databases.695d8f210018cf35bba0.tables.history.rows.*"
],
"user": {
"$id": "69627fa28bf6f1e551ce",
"$createdAt": "2026-01-10T16:34:42.574+00:00",
"$updatedAt": "2026-01-10T16:34:42.574+00:00",
"name": "",
"registration": "2026-01-10T16:34:42.573+00:00",
"status": true,
"labels": [],
"passwordUpdate": "",
"email": "",
"phone": "",
"emailVerification": false,
"phoneVerification": false,
"mfa": false,
"prefs": {},
"targets": [],
"accessedAt": "2026-01-10T16:34:42.573+00:00"
}
}
}
Can you try adding the permissions in this part:
// how the history entries are created
this.appwriteTables?.createRow<History>({
databaseId: this.DATABASE_ID,
tableId: "history",
data,
rowId: ID.unique(),
});
I mean, something like this:
this.appwriteTables.createRow<History>({
databaseId: this.DATABASE_ID,
tableId: "history",
rowId: ID.unique(),
data,
permissions: [
Permission.read(Role.user(userId)),
Permission.update(Role.user(userId)),
Permission.delete(Role.user(userId)),
],
});
Recommended threads
- How to handle ghost accounts created by ...
Appwrite create the account with the email and send an invitation link with a secret. I am able to accept the invitation and add the account as a member on the ...
- Broken Appwrite can’t make functions nor...
Hii guys, I was having this issue with my locally hosted Appwrite, I can’t create functions ( both template and manual), I can’t make a custom domain ( like in ...
- Bulk operations on tables with relations
Hi, if I try to perform a bulk delete on a table with relations, I get this: `289 | if (((_b = response.headers.get("content-type")) == null ? void 0 : _...