diff --git a/packages/cli-kit/src/public/node/error-handler.test.ts b/packages/cli-kit/src/public/node/error-handler.test.ts index 8f101ab55d4..06e0e241300 100644 --- a/packages/cli-kit/src/public/node/error-handler.test.ts +++ b/packages/cli-kit/src/public/node/error-handler.test.ts @@ -87,6 +87,20 @@ describe('errorHandler', async () => { expect(outputMock.info()).toMatch('✨ Custom message') expect(process.exit).toBeCalledTimes(0) }) + + test('finishes the execution without exiting the proccess when AbortSilentError is raised', async () => { + // Given + vi.spyOn(process, 'exit').mockResolvedValue(null as never) + const outputMock = mockAndCaptureOutput() + outputMock.clear() + + // When + await errorHandler(new error.AbortSilentError()) + + // Then + expect(outputMock.info()).toBe('') + expect(process.exit).toBeCalledTimes(0) + }) }) describe('bugsnag stack cleaning', () => { diff --git a/packages/cli-kit/src/public/node/error-handler.ts b/packages/cli-kit/src/public/node/error-handler.ts index d639c9d3d33..58f8fcd14b4 100644 --- a/packages/cli-kit/src/public/node/error-handler.ts +++ b/packages/cli-kit/src/public/node/error-handler.ts @@ -36,17 +36,16 @@ export async function errorHandler( if (error.message && error.message !== '') { outputInfo(`✨ ${error.message}`) } - } else if (error instanceof AbortSilentError) { - /* empty */ - } else { - return errorMapper(error) - .then((error) => { - return handler(error) - }) - .then((mappedError) => { - return reportError(mappedError, config) - }) + return } + + if (error instanceof AbortSilentError) { + return + } + + const mappedError = await errorMapper(error) + await handler(mappedError) + await reportError(mappedError, config) } const reportError = async (error: unknown, config?: Interfaces.Config): Promise => {