So, this question led me through a wild goose chase down the code, to figure out why this would be happening. Since the Community User does have a metadata record, with exactly one pageview recorded. And the logic is in place to record it when the profile pages are loaded.
The process for saving new profile views is actually pretty optimized. It is async from the page loading, and is run in batches per site through a separate process. In order to batch these updates, a row is inserted into a cached list that looks like this:
var itemKey = "vc-" + tableName + "-" + itemId;
In this case, the itemId
is -1
for the Community user, so the string that is stored will be vc-UserMetadata--1
.
The problem comes from a subtle bug in this process. The code for parsing out the itemId
here looks like this:
int id = int.Parse(itemKey.Substring(itemKey.LastIndexOf('-') + 1));
This translates to: take a string, find the last occurrence of a dash (which is used as a delimiter in the string), and then extract the itemId
numeric value from the end of the string. This works for all cases, except those where itemId
is a negative number. In those cases, instead of pulling out a -1
, it is pulling out a 1
.
TLDR: all of the profile views for the Community User (for a good number of years), have been going instead to Stack Overflow Valued Associate #00001 (Jeff Atwood), who as of now has over 90K profile views on MSE and over 580K views on SO (and no way of knowing how many of those were donated by the Community User).
We will probably fix this at some point. But a good question like this deserves a thorough answer.
UPDATE: A fix is undergoing review and should hopefully be pushed out at some point tomorrow!
UPDATE 2: Fix is deployed - Community's profile view count here should correctly count views as of 2020-12-01 11:45 UTC and 11:54 UTC for the rest of the network. Sorry Jeff, no more free profile views for you :)
ViewCount
stuck on 1
Why no views for Comm User?
Given to Atwood