onCommandFailure method

  1. @override
Future<void> onCommandFailure(
  1. Command command,
  2. dynamic error
)

Send error response when command processing fails

Implementation

@override
Future<void> onCommandFailure(Command command, dynamic error) async {
  await super.onCommandFailure(command, error);

  if (!_isInActorSystem()) return;

  final sender = _capturedSenders[command.commandId];
  if (sender == null) return;

  final invoiceId = command is InvoiceCommand ? command.invoiceId : aggregateId;
  sender.tell(InvoiceStatusMessage(
    invoiceId: invoiceId,
    status: InvoiceStatus.pending, // Status unchanged on failure
    statusMessage: 'Command failed: $error',
  ));
}