The key clue is that it's anonymous-only and affects every sorted view (browse, browse-by, advanced search). That points at culture, not data. AtoM builds the sort field as i18n.<active-culture>.title.alphasort, where the culture is the visitor's current UI culture — not anything stored on the records.
Logged-in users have an account culture of en, so they sort on i18n.en.title.alphasort, which exists. Anonymous visitors have no stored preference, so AtoM negotiates from the browser's Accept-Language header → en-US → it sets the active culture to en_US. Your index only has i18n.en.* mappings, so sorting on `ii18n.en_US.title.alphasort throws "No mapping found … in order to sort on". Unsorted requests are fine, which is why only the sorted pages break.
So reindexing won't help (the index is correct), and updating record cultures won't help either, because the en_US is coming from the request, not the data. The fix is to make sure en_US is not an available UI culture — keep your enabled language(s) as en so culture negotiation falls back to your default_culture: en for anonymous visitors. Quick confirmation: open the site in a private window and check the culture in the URL — you'll likely see it resolve to en_US.
(If you ever do want a US-English locale, the other direction is to add en_US as a real enabled culture and reindex so the mapping is created — but for a single-language en site, dropping en_US from the available cultures is the fix.)
Best,
Johan Pieterse (PhD)
https://heratio.theahg.co.za