I've been having some difficulty reliably accessing car data recently, but I think my code was probably aggravating the problem.
Anyway, it may be a good time to state how your app communicates with your car, as its apparent from a few comments on the forum that this is not clear.
Essentially, you always communicate via a server:-
Your app (iSmart or diy code)
↓ HTTPS (REST)
SAIC / iSmart Europe cloud (servers)
↓ Cellular (LTE/4G/NB-IoT)
Vehicle TCU (Telematics Control Unit)
↓ CAN / internal vehicle networks
ECUs (BMS, BCM, IMCU, etc.)
All requests for data or to operate features (e.g. defrost, heat seats & so on) are made to the server, not directly to your car.
The server can 'rate limit' your requests, but not clear at the moment what the limits are/reasons for blocks.
One other point that I've checked, is that ev main (traction) battery continues to maintain 12V system battery, even when main battery SoC drops below 20%.
My notes are here:
MG S5 ev: using the API #3