The issue is unapprovedCounts/userUpgradeCount aren't being accessed to trigger the re-load as expected;
Code:
SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('unapprovedCounts', 'userUpgradeCount')
Run Time: 0.000262
Select Type
Table
Type
Possible Keys
Key
Key Len
Ref
Rows
Extra
SIMPLE
xf_data_registry
range
PRIMARY
PRIMARY
27
2
Using where
Code:
[LIST=1]
[*]XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 94
[*]XF\Db\AbstractAdapter->query() in src/XF/Db/AbstractAdapter.php at line 175
[*]XF\Db\AbstractAdapter->fetchPairs() in src/XF/DataRegistry.php at line 138
[*]XF\DataRegistry->readFromDb() in src/XF/DataRegistry.php at line 83
[*]XF\DataRegistry->get() in src/XF/App.php at line 1752
[*]XF\App->preLoadData() in src/XF/App.php at line 1740
[*]XF\App->setup() in src/XF/Pub/App.php at line 89
[*]XF\Pub\App->setup() in src/XF.php at line 363
[*]XF::setupApp() in src/XF.php at line 386
[*]XF::runApp() in index.php at line 20
[/LIST]
Touching the account upgrade page (userUpgradeCount) or a moderator touching a page (unapprovedCounts) does trigger the rebuild.