Custom plugin giving: wp-admin/admin-ajax.php 400 (Bad Request)

As Jacob Peattie mentioned this issue was occuring on logged out users and his suggestion of hooking wp_ajax_nopriv fixed the issue:

add_action('wp_ajax_nopriv_plugin_prefix_page_change', array($this, 'plugin_prefix_page_change'));