diff --git a/apps/api/src/collectives/provisioner.config.ts b/apps/api/src/collectives/provisioner.config.ts index 5f5148b..d62483f 100644 --- a/apps/api/src/collectives/provisioner.config.ts +++ b/apps/api/src/collectives/provisioner.config.ts @@ -115,7 +115,13 @@ export class MatrixHttpClient implements MatrixAdminPort { if (typeof body.room_id !== "string" || body.room_id === "") { throw new ProvisionerUnavailableError("createRoom response missing room_id"); } - return { roomId: body.room_id }; + // Some homeservers return the bare localpart; the full room ID carries the + // server name, and every downstream consumer (DB checks, invites, joins) + // requires the complete form. + const roomId = body.room_id.includes(":") + ? body.room_id + : `${body.room_id}:${this.config.homeserverUrl.host}`; + return { roomId }; } async sendStateEvent(