Mixpanel reports rely on consistent handling of this distinct_id property in order to calculate unique users. If you’re seeing values in different formats populating the Distinct ID column in Live View, this could be an indication that the distinct_id of your users is changing over time or not being handled consistently.
Why is this a problem?
If you change a user’s distinct_id across events and then use those events in a funnel report, the funnel will break (i.e., you’ll see a high drop off rate between steps in your funnel). This happens because Mixpanel won't be able to associate the old ID with the new and will view users with different distinct_ids as different users. In order to see accurate funnel and retention data, you’ll need to be handling user identity consistently.
How does a random distinct_id get assigned, and how does that change to something like an email or username?
From there, you have the option of assigning users new distinct_ids, or mapping your own custom IDs (e.g. the user's email address) to the original user distinct_ids.
How do I fix it?
Generally when the Distinct ID column in Live View has values in different formats, the issue is that mixpanel.identify() is being called on the user’s email address at some point in the registration flow, which actually changes the ID being sent with future events.
Instead, if you'd like to link the user's anonymous activity to their activity once they're a customer, you can use the alias method to link your custom ID to the anonymous, Mixpanel-assigned distinct_id assigned by our library, for example:
When the alias method has been implemented properly, the user's distinct_id does not actually change and post-registration events are still fired with the original distinct_id, which indicates that everything is functioning as it should! Once the alias is established, you can use the identify method on your custom ID, and Mixpanel will look up this value in an alias lookup table and know to map the user's events to the user's original distinct_id.