Description of problem: Customer tags were not syncing properly. This caused issues where certain forums, that were restricted by tags, resulted in customer (users) not being able to post in the forum as the tags weren't sync'ed.
Background: Champ checks for permissions in multiple instances. Once when the page is rendered and again when the user wants to create new topics or posts in forums. Tag syncing is done by listening to Shopify webhooks. Unfortunately, Shopify's webhook system does not always send webhooks in order. Sometimes it also sends multiple webhooks (say, when the customer record in Shopify is updated multiple times in rapid succession). Sometimes webhooks are delayed. Bottom line -- webhooks are unreliable.
This created some syncing issues on our end.
The fix: An error correction code is implemented to check for this and to resync customers automatically in the background. This is done very frequently and was implemented in such a way to prevent this issue from ever coming up again (that is the goal!). Champ still relies on Shopify to initiate the webhook, but we will then double check again (about 60 seconds after the first sync attempt) that we truly do have the latest record.
A part of this fix is that the system will also independently check all user records periodically as well.
This fix was pushed out to the servers last night (January 2, 2020). As with all releases, please let me know if you notice any problems. Software development is an ongoing process and so bugs (especially when dealing with external APIs) can creep in every now and then.
Thanks for everyone's patience, and especially to @brett for emailing me about it.