Error messages about connectivity are hard. Add pricing, geo-fencing or SKUs to the mix, and things become even more complicated. You don't know what went wrong, but it's your job to convey to the user that everything is going to be alright.
A tenet of good UX writing is to include client-side actions a user can take to try and fix the problem themselves. However, there is a thin line between "empowering" the user to take action and making it seem like the error is their fault, so tread lightly.
Test "hail mary" copy that includes a "well, maybe try this?" type of sentiment. Try and send the messages that the user is still in control, and, if all else fails, there's always the classic "why don't you come back later?"
The point is, never say "Sorry, sh*ts all b0rked" and then leave them to their (now dead) device.
It doesn't hurt to acknowledge how messed up this error is and that you're right there with them. A bit of self-awareness and possibly even self-effacing humor might be in order here.