diff --git a/packages/transaction-controller/src/TransactionController.ts b/packages/transaction-controller/src/TransactionController.ts index aaf8812d6fa..5ff833f77dc 100644 --- a/packages/transaction-controller/src/TransactionController.ts +++ b/packages/transaction-controller/src/TransactionController.ts @@ -3090,6 +3090,7 @@ export class TransactionController extends BaseController< traceContext, publishHook, ); + if ( approvalResult === ApprovalState.SkippedViaBeforePublishHook && resultCallbacks @@ -3099,10 +3100,19 @@ export class TransactionController extends BaseController< const updatedTransactionMeta = this.#getTransaction( transactionId, ) as TransactionMeta; - this.messenger.publish(`${controllerName}:transactionApproved`, { - transactionMeta: updatedTransactionMeta, - actionId, - }); + + if (approvalResult === ApprovalState.NotApproved) { + this.messenger.publish(`${controllerName}:transactionFailed`, { + transactionMeta: updatedTransactionMeta, + actionId, + error: transactionMeta.error?.message ?? 'Transaction failed', + }); + } else { + this.messenger.publish(`${controllerName}:transactionApproved`, { + transactionMeta: updatedTransactionMeta, + actionId, + }); + } } } catch (rawError: unknown) { const error = rawError as Error & { code?: number; data?: Json };