Grouping by earliest year on a field of an M2M relation

I have two models:

class User(Model):
    ...

class Session(Model):
    start = DateTimeField(...)
    end = DateTimeField(...)
    users = ManyToManyField(User, related_name='sessions')
    ...

I have users and session data for multiple years from 2014 to 2025.

>>> User.objects.count()
3339

>>> Session.objects.count()
12956

>>> Session.objects.values_list('start__year', flat=True).distinct()
<SessionQueryset [2024, 2016, 2022, 2015, 2025, 2018, 2014, 2020, 2017, 2023, 2019, 2021]>

For each year, I’m trying to count the number of unique users who had their very first session in that year. In other words, the number of new users in each year. I tried the following:

User.objects.values(
    year=Min('sessions__start__year')
).annotate(
    new_users=Count('id', distinct=True)
).values(
    'year', 'new_users'
)

However, this returns:

<QuerySet [{'year': 2014, 'new_users': 3339}]>

Which is not what I would have expected, because doing the aggregation in python as follows:

from collections import Counter

users_first_year = User.objects.annotate(year=Min('sessions__start__year'))
results = Counter(u.year for u in users_first_year)

Gives me the expected results:

{None: 1183,
 2015: 132,
 2020: 188,
 2024: 214,
 2022: 193,
 2017: 135,
 2016: 148,
 2025: 219,
 2018: 178,
 2021: 188,
 2023: 225,
 2014: 161,
 2019: 175}

I would much rather do this in the database. Any idea what is wrong with my query above?