From d2bd7987c17689136365658f6c790a247fca5eec Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Tue, 5 May 2026 16:28:07 +0200 Subject: [PATCH] fix(federation): include presenceUpdate in outbox-to-relay event rebuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The outbox worker rebuilds FederationRelayEvent objects from stored JSON via an allowlist of known fields. presenceUpdate was missed when presence_update events shipped, so peers received events with eventType='presence_update' but no payload — rejected with missing_presence_update_payload on every tick. --- packages/server/src/utils/federationWorker.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/server/src/utils/federationWorker.ts b/packages/server/src/utils/federationWorker.ts index 66909640..fdd82e7c 100644 --- a/packages/server/src/utils/federationWorker.ts +++ b/packages/server/src/utils/federationWorker.ts @@ -220,6 +220,7 @@ export async function processOutboxTick(): Promise { if (parsed.rejectionLimit != null) evt.rejectionLimit = parsed.rejectionLimit; if (parsed.affectedUserIds) evt.affectedUserIds = parsed.affectedUserIds; if (parsed.profileUpdate) evt.profileUpdate = parsed.profileUpdate; + if (parsed.presenceUpdate) evt.presenceUpdate = parsed.presenceUpdate; if (parsed.readState) evt.readState = parsed.readState; if (parsed.dmCloseReopen) evt.dmCloseReopen = parsed.dmCloseReopen; return evt;