Why are my wp_query args being ignored if post_type = CPT

I found the problem, thanks to @vancoder for the tip!

I have pre_get_posts attached to a function for alphabetizing product posts, which was causing everything else to be out of whack. It should have been targeting only products!

/***************************************************************
 * Change Archive sorting
 * https://codex.wordpress.org/Alphabetizing_Posts
***************************************************************/

function course_dir_sort_order( $query ) {
    if ( $query->is_archive('products') ) {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
        $query->set( 'posts_per_page', '-1' );
    }
}
add_action( 'pre_get_posts', 'course_dir_sort_order' );

error code: 523