Profile statistics are not updating consistently without hard refresh

Hi Exercism team,

I’ve noticed an issue where several statistics on my Exercism profile are not updating correctly or consistently.

My profile currently has 100+ mentoring-related activity, but some parts of the site continue to display older values such as 50.

I’ve noticed similar stale/inconsistent behaviour with:

  • Mentoring counts
  • Students mentored / completed mentoring discussions
  • Testimonials
  • Reputation
  • Other profile/contribution counters

What happens

  1. I complete additional mentoring activity or receive new activity that should affect my profile statistics.
  2. I visit my profile/dashboard.
  3. The displayed count is still an older value.
  4. Normal navigation sometimes continues showing the stale value.
  5. If I perform a hard refresh, or navigate to another page and then return, the correct/latest value sometimes suddenly appears.
  6. Different parts of the site can therefore show different totals at the same time.

Expected behaviour

Once the underlying activity has been processed, all profile statistics should display the same latest values without requiring a hard browser refresh or navigating away and back.

Actual behaviour

The counters appear to remain cached/stale in some views and are only refreshed after certain navigation or a hard reload.

This makes it difficult to know which value is actually current.

Example profile

My profile:

https://exercism.org/profiles/Arul1998

I currently have enough activity that the difference is quite noticeable — for example, a counter may show around 50 even though the actual count is already 100+.

Possible area to investigate

It looks like there may be an issue with one or more of:

  • API response caching
  • Frontend/query cache invalidation
  • Profile statistics recalculation
  • Stale data after client-side navigation
  • Different endpoints using differently cached/generated statistics

I’m happy to provide screenshots, API responses, browser network requests, or exact examples of counters that disagree if that would help reproduce/debug it.

If you’d like me to investigate and work on a fix for this issue as well, I’m happy to contribute. Please let me know which repository/codebase contains this functionality and where you would prefer the fix to be made.

Thanks!

Is there a specific activity you’re looking at?
What is the actual number?
What is the expected number?