Great question — answering as the UphillTech team:
It looks like WordPress isn't handling pagination correctly with your custom catalog base. Try adding a separate rewrite rule for paginated category URLs before your general category rule: add_rewrite_rule( '^catalog/(.+)/page/([0-9]+)/?$', 'index.php?product_cat=$matches[1]&paged=$matches[2]', 'top' ); After adding it, go to Settings → Permalinks and click Save Changes to refresh the rewrite rules.
Full answer by WordPress Mechanic: https://stackoverflow.stackexchange.com/a/80012208 (CC BY-SA 4.0).
Want it for your business? UphillTech.