I've noticed that ever since we started taking online contributions (last summer) new members have been getting created with null start date and "member since" date. Offline memberships (created via the backend) work fine, and the membership statuses all seem to work correctly otherwise. The end date is also set correctly. I'm using both GoCardless and Stripe payment processors and the problem appears with both of them.
The practical upshot of this is that these members are not being counted in the membership summary dashboard - this is probably also a bug - either the schema should enforce these values not being null, or the dates shouldn't be used to calculate a "current" member.
In case it's relevant, here are the membership status rules:
Some other details:
- the memberships are rolling
- hosted on Drupal 7 and MySQL
- running CiviCRM 5.34.0, but problem dates back to at least 5.28.1, the version running when the earliest membership of this type was created.
- Detailed logging is enabled, and there's no evidence of the dates being set and cleared.
There are similar issues described at Start/member since dates not being set since upgrade to 5.3.2 and Member Since and Start Date aren't being recorded in membership details but there is no resolution of either of those and they're both a few years old, so I figured a fresh report would not be a bad thing.
Edit to add screenshots of the contribution page (membership and profile sections):
Edit to add:
Some experiments I tried to rule out various causes
- The same thing happens with a dummy provider or a free membership.
- Pay later puts the membership into pending state, with no dates at all (based on comments this also seems unexpected
- The same thing happens on a clone of the live site with all extensions disabled
- The same test installation with a completely fresh install and the demo contribution form works as expected, populating all the dates correctly.
So have pinned it down to something in our live database at least, rather than anything basic with the environment or code deployment, but I've pored over the differences in settings and contribution forms from database dumps and found nothing promising.