Custom post type defaults to index.php for archive page

The solution to this problem turned out to be:

  • Changing the name of the custom post type from “events” (with the slug /events/) to “event” (with the slug /event/)
  • Creating a page with a custom template with the slug /events/ to display the archives of the custom post type

While this is technically not an answer to the question of why WP refuses to serve and display the archive template for the custom post typer per WP’s own template hierarchy, it solves my problem.

Along the way, I used wp-cli to flush WP’s internal cache and delete all transients, but that didn’t have any effect.