From 4c32e327a55a14653e3423c19600d3fd28dee755 Mon Sep 17 00:00:00 2001 From: Parth Bansal Date: Tue, 8 Sep 2026 19:19:48 +0000 Subject: [PATCH] Expose Databricks error codes on ApiError.errorCode --- packages/core/NEXT_CHANGELOG.md | 2 ++ packages/core/src/apierror/apierror.ts | 4 ++++ packages/core/tests/apierror/apierror.test.ts | 2 ++ 3 files changed, 8 insertions(+) diff --git a/packages/core/NEXT_CHANGELOG.md b/packages/core/NEXT_CHANGELOG.md index 5e8ed133b..17a7cdd7b 100644 --- a/packages/core/NEXT_CHANGELOG.md +++ b/packages/core/NEXT_CHANGELOG.md @@ -6,6 +6,8 @@ ### Bug Fixes +- Expose Databricks API error codes on `ApiError.errorCode` while retaining `.code`. + ### Documentation ### Internal Changes diff --git a/packages/core/src/apierror/apierror.ts b/packages/core/src/apierror/apierror.ts index eff5ca52c..957480a3c 100644 --- a/packages/core/src/apierror/apierror.ts +++ b/packages/core/src/apierror/apierror.ts @@ -48,6 +48,9 @@ export class ApiError extends Error { */ readonly code: Code; + /** The Databricks error code returned by the API. */ + readonly errorCode: Code; + /** * The structured error details of the error. This is left empty if the * error response is not a standard Databricks API error. @@ -72,6 +75,7 @@ export class ApiError extends Error { super(options.message, {cause: options.cause}); this.name = 'ApiError'; this.code = options.code; + this.errorCode = options.code; this.details = options.details; if (options.httpStatusCode !== undefined) { this.httpErr = { diff --git a/packages/core/tests/apierror/apierror.test.ts b/packages/core/tests/apierror/apierror.test.ts index 4802fcdcd..86dc34f6b 100644 --- a/packages/core/tests/apierror/apierror.test.ts +++ b/packages/core/tests/apierror/apierror.test.ts @@ -59,6 +59,7 @@ describe('ApiError non-HTTP getters', () => { it.each(testCases)( '$name', ({apiErr, wantCode, wantMessage, wantDetails}) => { + expect(apiErr.errorCode).toBe(wantCode); expect(apiErr.code).toBe(wantCode); expect(apiErr.message).toBe(wantMessage); expect(apiErr.details).toStrictEqual(wantDetails); @@ -316,6 +317,7 @@ describe('fromHttpError', () => { expect.fail('expected fromHttpError to return an ApiError'); } + expect(got.errorCode).toBe(tc.want.errorCode); expect(got.code).toBe(tc.want.code); expect(got.message).toBe(tc.want.message); expect(got.details).toStrictEqual(tc.want.details);