Issue with Events not being persisted in Event Store

I have an issue where an event that is applied is not reflected in the event store as evidenced by the state of the event store and the state upon aggregate load. I figure I am not implementing properly. However, since I have other code in the same pattern that does work, I am having trouble identifying the defect. Can anyone provide a pointer or two? Thanks in advance.

The implementation has a CommandHandler in its own class that is invoking the method updateMetadata(…) in the aggregate.

public void updateMetadata(EnrollCardResponse response) {

        CardMetadataUpdatedEvent event = CardMetadataUpdatedEvent.builder()
            .cardId(this.getCardId())
            .cardMetaData(response.getCardMetaData())
            .paymentInstrument(response.getPaymentInstrument())
            .createdTs(new Date())
            .build();
        apply(event);

}

@EventHandler
private void handle(CardMetadataUpdatedEvent event) {
    log.debug("applying card metadata update event.  card: {}, event {}", this.getCardId(), event);
    this.paymentInstrument = event.getPaymentInstrument();
    this.cardMetaData = event.getCardMetaData();
    this.lastUpdatedTs = event.getCreatedTs();
}

The log does show that the event handler was executed.  However, the event is not posted to the event store.
[CardAggregate] applying card metadata update event.  card: cebd1280-1c25-41a9-bd6f-ce7d99aa4dc1, event CardMetadataUpdatedEvent(cardId=cebd1280-1c25-41a9-bd6f-ce7d99aa4dc1, createdTs=....

Dah. Identified the reason. The aggregate had been retrieved in a transaction that was closed.