Preheat oven to 350F (175C) and spray a 9×13” (23x33cm) baking pan with baking spray.
Combine 12 oz cola, butter, and cocoa powder in a medium-sized saucepan and heat over medium-heat until butter has melted (the mixture may separate in the saucepan, that is OK). Bring to a boil, stirring frequently then remove from heat and allow to cool while you prepare your dry ingredients.
In a large bowl, whisk together flour, sugar, cornstarch, baking soda, baking powder, and salt.
Pour cola mixture into the dry ingredients and stir until smooth.
Add sour cream, eggs, and vanilla extract and stir again until the batter is smooth.
Pour batter into prepared 9×13 (23x33cm) baking pan and transfer to 350F (175C) oven. Bake for 28-30 minutes or until a toothpick inserted in the center comes out with a few moist crumbs or clean. Baking time given is for a metal baking pan, glass or ceramic will take longer to bake (approximately 35-38 minutes).
While cake is in the oven or is cooling you can prepare the frosting.
Pour cola into a clean medium-sized saucepan and cook over medium-high heat until it has reduced in volume so that it is between ⅓ and ½ cup (79-118ml). You will need to carefully pour the cola into a heatproof liquid measuring cup to check if it has been reduced enough.
Once cola has been reduced enough, add butter and salt and continue to cook over medium/low heat until the butter is melted (if the mixture looks a bit separated this is fine, it will come together in the next step).
Remove from heat and add cocoa powder, whisking until smooth.
Add powdered sugar and whisk again until frosting is smooth and lump free and immediately pour/spread over warm cake.
Allow cake to cool and frosting to set before slicing and serving. This cake is great served by itself or with vanilla ice cream!