fix(orchestration): Handle expected lifecycle errors (#12886)

* fix(orchestration): Handle expected lifecycle errors

* fix(orchestration): Handle expected lifecycle errors

* Create fast-ears-own.md
This commit is contained in:
Adrien de Peretti
2025-07-06 23:11:03 +02:00
committed by GitHub
parent a7700f116f
commit e9a33d0700
3 changed files with 21 additions and 17 deletions

View File

@@ -0,0 +1,6 @@
---
"@medusajs/test-utils": patch
"@medusajs/orchestration": patch
---
fix(orchestration): Handle expected lifecycle errors

View File

@@ -113,6 +113,13 @@ export class TransactionOrchestrator extends EventEmitter {
}
}
private static isExpectedError(error: Error): boolean {
return (
SkipCancelledExecutionError.isSkipCancelledExecutionError(error) ||
SkipExecutionError.isSkipExecutionError(error)
)
}
static clone(orchestrator: TransactionOrchestrator): TransactionOrchestrator {
return new TransactionOrchestrator({
id: orchestrator.id,
@@ -525,10 +532,7 @@ export class TransactionOrchestrator extends EventEmitter {
try {
await transaction.saveCheckpoint()
} catch (error) {
if (
!SkipCancelledExecutionError.isSkipCancelledExecutionError(error) &&
!SkipExecutionError.isSkipExecutionError(error)
) {
if (!TransactionOrchestrator.isExpectedError(error)) {
throw error
}
@@ -583,10 +587,7 @@ export class TransactionOrchestrator extends EventEmitter {
try {
await transaction.saveCheckpoint()
} catch (error) {
if (
!SkipCancelledExecutionError.isSkipCancelledExecutionError(error) &&
!SkipExecutionError.isSkipExecutionError(error)
) {
if (!TransactionOrchestrator.isExpectedError(error)) {
throw error
}
@@ -764,10 +765,7 @@ export class TransactionOrchestrator extends EventEmitter {
try {
await transaction.saveCheckpoint()
} catch (error) {
if (
!SkipCancelledExecutionError.isSkipCancelledExecutionError(error) &&
!SkipExecutionError.isSkipExecutionError(error)
) {
if (!TransactionOrchestrator.isExpectedError(error)) {
throw error
}
@@ -830,7 +828,7 @@ export class TransactionOrchestrator extends EventEmitter {
})
await transaction.saveCheckpoint().catch((error) => {
if (SkipExecutionError.isSkipExecutionError(error)) {
if (TransactionOrchestrator.isExpectedError(error)) {
continueExecution = false
return
}
@@ -900,7 +898,7 @@ export class TransactionOrchestrator extends EventEmitter {
}
await transaction.saveCheckpoint().catch((error) => {
if (!SkipExecutionError.isSkipExecutionError(error)) {
if (!TransactionOrchestrator.isExpectedError(error)) {
throw error
}
})
@@ -1063,7 +1061,7 @@ export class TransactionOrchestrator extends EventEmitter {
await this.handleStepSuccess(transaction, step, response)
})
.catch(async (error) => {
if (SkipExecutionError.isSkipExecutionError(error)) {
if (TransactionOrchestrator.isExpectedError(error)) {
return
}
@@ -1112,7 +1110,7 @@ export class TransactionOrchestrator extends EventEmitter {
}
})
.catch(async (error) => {
if (SkipExecutionError.isSkipExecutionError(error)) {
if (TransactionOrchestrator.isExpectedError(error)) {
return
}

View File

@@ -36,7 +36,7 @@ export interface MedusaSuiteOptions {
}
getMedusaApp: () => MedusaAppOutput
utils: {
waitWorkflowExecutions: (container: MedusaContainer) => Promise<void>
waitWorkflowExecutions: () => Promise<void>
}
}