From 7d787575dd0863eefbeb9e3b59a70bf006a78ff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Thu, 26 Mar 2026 00:12:53 +0100 Subject: [PATCH] nicolium: add a CORS warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/nicolium/src/locales/en.json | 3 ++- .../src/pages/auth/components/external-login-form.tsx | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/nicolium/src/locales/en.json b/packages/nicolium/src/locales/en.json index 3a10ad624..9ba4f9e8e 100644 --- a/packages/nicolium/src/locales/en.json +++ b/packages/nicolium/src/locales/en.json @@ -1416,7 +1416,8 @@ "login.otp_log_in.fail": "Invalid code, please try again.", "login.reset_password_hint": "Trouble logging in?", "login.sign_in": "Sign in", - "login_external.errors.instance_fail": "The instance returned an error.", + "login_external.errors.cors_fail": "Connection failed, likely due to CORS configuration. Is the instance configured to allow logins from other origins?", + "login_external.errors.instance_fail": "The instance returned an error. Is the URL correct?", "login_external.errors.network_fail": "Connection failed. Is a browser extension blocking it?", "login_form.divider": "or", "login_form.external": "Sign in from remote instance", diff --git a/packages/nicolium/src/pages/auth/components/external-login-form.tsx b/packages/nicolium/src/pages/auth/components/external-login-form.tsx index a8402458e..3e93c2eb6 100644 --- a/packages/nicolium/src/pages/auth/components/external-login-form.tsx +++ b/packages/nicolium/src/pages/auth/components/external-login-form.tsx @@ -13,7 +13,12 @@ const messages = defineMessages({ instancePlaceholder: { id: 'login.fields.instance_placeholder', defaultMessage: 'example.com' }, instanceFailed: { id: 'login_external.errors.instance_fail', - defaultMessage: 'The instance returned an error.', + defaultMessage: 'The instance returned an error. Is the URL correct?', + }, + corsFailed: { + id: 'login_external.errors.cors_fail', + defaultMessage: + 'Connection failed, likely due to CORS configuration. Is the instance configured to allow logins from other origins?', }, networkFailed: { id: 'login_external.errors.network_fail', @@ -47,8 +52,10 @@ const ExternalLoginForm: React.FC = () => { console.error(error); const status = error.response?.status; - if (status) { + if (status || !error.message) { toast.error(intl.formatMessage(messages.instanceFailed)); + } else if (error.message === 'NetworkError when attempting to fetch resource.') { + toast.error(intl.formatMessage(messages.corsFailed)); } else if (!status && ['Network request failed', 'Timeout'].includes(error.message)) { toast.error(intl.formatMessage(messages.networkFailed)); }