From a81bad24e09c028c89eaacdaa97ce619b9895402 Mon Sep 17 00:00:00 2001
From: Douglas Gubert <douglas.gubert@gmail.com>
Date: Mon, 21 Aug 2023 17:48:35 -0300
Subject: [PATCH] fix: Trigger app post user created event correctly (#30006)

---
 .changeset/slow-lizards-breathe.md                   |  5 +++++
 .../app/authentication/server/startup/index.js       | 12 +++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)
 create mode 100644 .changeset/slow-lizards-breathe.md

diff --git a/.changeset/slow-lizards-breathe.md b/.changeset/slow-lizards-breathe.md
new file mode 100644
index 00000000000..fd773b17f5c
--- /dev/null
+++ b/.changeset/slow-lizards-breathe.md
@@ -0,0 +1,5 @@
+---
+'@rocket.chat/meteor': patch
+---
+
+Fixed Apps-Engine event `IPostUserCreated` execution
diff --git a/apps/meteor/app/authentication/server/startup/index.js b/apps/meteor/app/authentication/server/startup/index.js
index 0382c0de138..e3b97c1aae8 100644
--- a/apps/meteor/app/authentication/server/startup/index.js
+++ b/apps/meteor/app/authentication/server/startup/index.js
@@ -249,11 +249,6 @@ const onCreateUserAsync = async function (options, user = {}) {
 		await callbacks.run('onCreateUser', options, user);
 	}
 
-	if (!options.skipAppsEngineEvent) {
-		// App IPostUserCreated event hook
-		await Apps.triggerEvent(AppEvents.IPostUserCreated, { user, performedBy: await safeGetMeteorUser() });
-	}
-
 	if (!options.skipEmailValidation && !validateEmailDomain(user)) {
 		throw new Meteor.Error(403, 'User validation failed');
 	}
@@ -353,6 +348,13 @@ const insertUserDocAsync = async function (options, user) {
 		}
 	}
 
+	if (!options.skipAppsEngineEvent) {
+		// `post` triggered events don't need to wait for the promise to resolve
+		Apps.triggerEvent(AppEvents.IPostUserCreated, { user, performedBy: await safeGetMeteorUser() }).catch((e) => {
+			Apps.getRocketChatLogger().error('Error while executing post user created event:', e);
+		});
+	}
+
 	return _id;
 };
 
-- 
GitLab