diff --git a/.changeset/serious-bottles-tie.md b/.changeset/serious-bottles-tie.md
new file mode 100644
index 0000000000000000000000000000000000000000..e12bb94a53106fd799c93e1e6512071d504f9768
--- /dev/null
+++ b/.changeset/serious-bottles-tie.md
@@ -0,0 +1,5 @@
+---
+'@rocket.chat/meteor': patch
+---
+
+Fix user not being set as online when setting "Use REST instead of websocket for Meteor calls" is disabled
diff --git a/apps/meteor/client/sidebar/header/UserMenu.tsx b/apps/meteor/client/sidebar/header/UserMenu.tsx
index a53836eda311d0d110ef18c5a8dcbefc5c1e5b8a..592fc19656e95cf33377ed60eede93f9e95b2829 100644
--- a/apps/meteor/client/sidebar/header/UserMenu.tsx
+++ b/apps/meteor/client/sidebar/header/UserMenu.tsx
@@ -28,6 +28,7 @@ const UserMenu = ({ user }: { user: IUser }) => {
 					selectionMode='multiple'
 					sections={sections}
 					title={t('User_menu')}
+					aria-label={t('User_menu')}
 					onAction={handleAction}
 					isOpen={isOpen}
 					onOpenChange={setIsOpen}
@@ -41,6 +42,7 @@ const UserMenu = ({ user }: { user: IUser }) => {
 					selectionMode='multiple'
 					sections={sections}
 					title={t('User_menu')}
+					aria-label={t('User_menu')}
 					onAction={handleAction}
 					isOpen={isOpen}
 					onOpenChange={setIsOpen}
diff --git a/apps/meteor/ee/server/startup/presence.ts b/apps/meteor/ee/server/startup/presence.ts
index 3e8daad4b259d58f4dcfae5034d5671634cab534..0e7ba8a2b951d93636b1096aca5a10c40e575cf2 100644
--- a/apps/meteor/ee/server/startup/presence.ts
+++ b/apps/meteor/ee/server/startup/presence.ts
@@ -30,7 +30,7 @@ Meteor.startup(() => {
 	});
 
 	Accounts.onLogin((login: any): void => {
-		if (login.type !== 'resume' || !login.connection.id) {
+		if (!login.connection.id) {
 			return;
 		}
 
diff --git a/apps/meteor/tests/e2e/presence.spec.ts b/apps/meteor/tests/e2e/presence.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ad96c3cee4bff0275e3bbef8ae8cbadf98a2cae4
--- /dev/null
+++ b/apps/meteor/tests/e2e/presence.spec.ts
@@ -0,0 +1,48 @@
+import { DEFAULT_USER_CREDENTIALS, IS_EE } from './config/constants';
+import { Registration } from './page-objects';
+import { setSettingValueById } from './utils/setSettingValueById';
+import { test, expect } from './utils/test';
+
+test.describe.serial('Presence', () => {
+	let poRegistration: Registration;
+
+	test.beforeEach(async ({ page }) => {
+		poRegistration = new Registration(page);
+
+		await page.goto('/home');
+	});
+
+	test.beforeAll(async ({ api }) => {
+		await expect((await setSettingValueById(api, 'API_Use_REST_For_DDP_Calls', true)).status()).toBe(200);
+	});
+
+	test.afterAll(async ({ api }) => {
+		await expect((await setSettingValueById(api, 'API_Use_REST_For_DDP_Calls', true)).status()).toBe(200);
+	});
+
+	test.describe('Login using default settings', () => {
+		test('expect user to be online after log in', async ({ page }) => {
+			await poRegistration.username.type('user1');
+			await poRegistration.inputPassword.type(DEFAULT_USER_CREDENTIALS.password);
+			await poRegistration.btnLogin.click();
+
+			await expect(page.getByRole('button', { name: 'User menu' }).locator('.rcx-status-bullet--online')).toBeVisible();
+		});
+	});
+
+	test.describe('Login using with "Methods by REST" disabled', () => {
+		test.skip(IS_EE, `Micro services don't support turning this setting off`);
+
+		test.beforeAll(async ({ api }) => {
+			await expect((await setSettingValueById(api, 'API_Use_REST_For_DDP_Calls', false)).status()).toBe(200);
+		});
+
+		test('expect user to be online after log in', async ({ page }) => {
+			await poRegistration.username.type('user1');
+			await poRegistration.inputPassword.type(DEFAULT_USER_CREDENTIALS.password);
+			await poRegistration.btnLogin.click();
+
+			await expect(page.getByRole('button', { name: 'User menu' }).locator('.rcx-status-bullet--online')).toBeVisible();
+		});
+	});
+});