From 178fdaf7a212d291afca03b77bfd17d9e3f1e1c8 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Wed, 12 Nov 2025 12:32:12 -0300 Subject: [PATCH 1/2] chore: improves how code access user-agent in the headers --- apps/meteor/ee/server/lib/deviceManagement/session.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/meteor/ee/server/lib/deviceManagement/session.ts b/apps/meteor/ee/server/lib/deviceManagement/session.ts index 23632257eaaa5..e985d7d60c4a1 100644 --- a/apps/meteor/ee/server/lib/deviceManagement/session.ts +++ b/apps/meteor/ee/server/lib/deviceManagement/session.ts @@ -3,7 +3,6 @@ import { Users } from '@rocket.chat/models'; import { Accounts } from 'meteor/accounts-base'; import { Meteor } from 'meteor/meteor'; import moment from 'moment'; -import type { Headers } from 'node-fetch'; import { UAParser } from 'ua-parser-js'; import * as Mailer from '../../../../app/mailer/server/api'; @@ -67,9 +66,9 @@ export const listenSessionLogin = () => { username, emails: [{ address: email }], } = user; - // TODO: Find why the httpheaders is being casted to IncomingHttpHeaders instead of Headers - const userAgentString = connection?.httpHeaders && (connection.httpHeaders as unknown as Headers).get('user-agent'); - const { browser, os, device, cpu, app } = await uaParser(userAgentString || ''); + + const userAgentString = connection?.httpHeaders?.['user-agent'] ?? ''; + const { browser, os, device, cpu, app } = await uaParser(userAgentString); const mailData = { name, From 73a0868426a19a8e19af650e88a7c0efa2410ac7 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Wed, 12 Nov 2025 12:38:38 -0300 Subject: [PATCH 2/2] docs: adds changeset --- .changeset/healthy-rabbits-sip.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/healthy-rabbits-sip.md diff --git a/.changeset/healthy-rabbits-sip.md b/.changeset/healthy-rabbits-sip.md new file mode 100644 index 0000000000000..5207f42462854 --- /dev/null +++ b/.changeset/healthy-rabbits-sip.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": patch +--- + +Fixes an issue where `user-agent` is not properly extracted from the DDP connection headers