From 58da8f11162e73b8cf6883db1585fe7ab3b6153b Mon Sep 17 00:00:00 2001 From: Aubin <60398825+aubin-tchoi@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:36:42 +0100 Subject: [PATCH] fix(snowflake) - fix snowflake interceptor (#9190) * fix: fix snowflake interceptor once again * fix: fix interface SnowflakeExpiredPasswordError --- .../snowflake/temporal/cast_known_errors.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/connectors/src/connectors/snowflake/temporal/cast_known_errors.ts b/connectors/src/connectors/snowflake/temporal/cast_known_errors.ts index e5fee9cd1a38..10f525633add 100644 --- a/connectors/src/connectors/snowflake/temporal/cast_known_errors.ts +++ b/connectors/src/connectors/snowflake/temporal/cast_known_errors.ts @@ -8,17 +8,23 @@ import { ExternalOAuthTokenError } from "@connectors/lib/error"; interface SnowflakeExpiredPasswordError extends Error { code: number; - name: string; + name: "OperationFailedError"; + data: { + nextAction: "PWD_CHANGE"; + }; } function isSnowflakeExpiredPasswordError( err: unknown ): err is SnowflakeExpiredPasswordError { return ( - typeof err === "object" && - err !== null && - "code" in err && - err.code === 390106 // this is the magic code number for an expired password error, the message says "Specified password has expired. Password must be changed using the Snowflake web console." + err instanceof Error && + err.name === "OperationFailedError" && + "data" in err && + typeof err.data === "object" && + err.data !== null && + "nextAction" in err.data && + err.data.nextAction === "PWD_CHANGE" ); }