It was pulling a code on cylinder 2 so I changed all spark plugs and ignition coils. Its weird because it will fire with the old ones, now it will start and die and all my coils have spark.
Discount auto parts stores love to recommend the parts replacement routine, as opposed to diagnosing. This way they get to sell more and more parts that the customer doesn't need.