title: Aggregate identifier must be non-null after applying an event. Make sure the aggregate identifier is initialized at the latest
body: <p>I am getting the below error. Axon version 3.3.3</p>
  
  <blockquote>
    <p>org.axonframework.eventsourcing.IncompatibleAggregateException:
    Aggregate identifier must be non-null after applying an event. Make
    sure the aggregate identifier is initialized at the latest when
    handling the creation event.</p>
  </blockquote>
  
  <p>I have created a UserAggregate. It contains 2 events:</p>
  
  <ul>
  <li>UserCreated </li>
  <li>UpdateUserEvent</li>
  </ul>
  
  <p>I am able to generate the first (UserCreated) event and it was saved in the event store with sequence 0, But while generating the second event I got the above-mentioned error. </p>
  
  <p>Any suggestions on this? </p>
  
  <h2>UserAggregate.java</h2>
  
  <pre><code>@Aggregate
  public class UserAggregate {
  
      @AggregateIdentifier
      private String id;
  
  
      private String email;
      private String password;
  
      public UserAggregate(String id, String email, String password) {
          super();
          this.id = id;
          this.email = email;
          this.password = password;
      }
  
      @CommandHandler
      public UserAggregate(CreateUser cmd) {
           AggregateLifecycle.apply(new UserCreated(cmd.getId(), cmd.getEmail(), cmd.getPassword()));
      }
  
      @CommandHandler
      public void handle(UpdateUserCmd cmd) {
           AggregateLifecycle.apply(new UpdateUserEvent(cmd.getId(), cmd.getEmail(),""));
      }
  
      @EventSourcingHandler
      public void userCreated(UserCreated event) {
  
          System.out.println("new User: email " + event.getEmail() +" Password: "+ event.getPassword());
  
          setId(event.getId());
  
  
  
  
      }
  
      @EventSourcingHandler
      public void updateUserEvent(UpdateUserEvent event) {
  
          System.out.println("new User: email " + event.getEmail());
  
          setId(event.getId());
  
  
  
  
      }
  
  
      public String getId() {
          return id;
      }
  
      public void setId(String id) {
          this.id = id;
      }
  
      public String getEmail() {
          return email;
      }
  
      public void setEmail(String email) {
          this.email = email;
      }
  
      public String getPassword() {
          return password;
      }
  
      public void setPassword(String password) {
          this.password = password;
      }
  
      public UserAggregate() {
      }
  
  }
  </code></pre>