From 7b44f6548f2155d087cb213b19fc99857e0976f1 Mon Sep 17 00:00:00 2001 From: superset-home <338338640+superset-home@users.noreply.github.com> Date: Thu, 5 Nov 2026 07:33:21 +0000 Subject: [PATCH] fix(desktop): report an offline cloud API on plugins.sync as unavailable plugins.sync let a transport failure to the cloud API (connect timeout, DNS, refused) reach the Sentry middleware as INTERNAL_SERVER_ERROR, so a user's network reported as a desktop bug on every renderer retry. Translate it at the throw site with the existing host-service classifier, the same way host.ts does. Refs DESKTOP-1QS --- apps/desktop/src/lib/trpc/routers/plugins/index.ts | 8 +++++++- packages/host-service/package.json | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/lib/trpc/routers/plugins/index.ts b/apps/desktop/src/lib/trpc/routers/plugins/index.ts index 09977bd8ef5..3580707ba52 100644 --- a/apps/desktop/src/lib/trpc/routers/plugins/index.ts +++ b/apps/desktop/src/lib/trpc/routers/plugins/index.ts @@ -1,3 +1,4 @@ +import { rethrowCloudUnreachable } from "@superset/host-service/cloud-api-error"; import { isOrganizationMarketplace } from "@superset/shared/plugins"; import { TRPCError } from "@trpc/server"; import { @@ -131,7 +132,12 @@ export const createPluginsRouter = () => { z.object({ organizationId: z.string().min(1).optional() }).optional(), ) .mutation(async ({ input }) => { - await syncPlugins(input?.organizationId); + try { + await syncPlugins(input?.organizationId); + } catch (error) { + rethrowCloudUnreachable(error); + throw error; + } return { ok: true }; }), }); diff --git a/packages/host-service/package.json b/packages/host-service/package.json index 8e2df2a6668..03c2b7c701b 100644 --- a/packages/host-service/package.json +++ b/packages/host-service/package.json @@ -56,6 +56,10 @@ "types": "./src/trpc/router/settings/index.ts", "default": "./src/trpc/router/settings/index.ts" }, + "./cloud-api-error": { + "types": "./src/trpc/router/host/cloud-api-error.ts", + "default": "./src/trpc/router/host/cloud-api-error.ts" + }, "./attachments": { "types": "./src/trpc/router/attachments/index.ts", "default": "./src/trpc/router/attachments/index.ts"