Regards ignoring the unavailable state, I found a post with a possible workaround – I’ll try this and report back.
Another possibility, if the inverter’s response cannot be counted on, would be to enable one or more retries, at least in the case of the /runAll endpoint, although if the inverter normally takes a while to start behaving then this will likely result in the same.
Have GivEnergy given any feedback as to why it intermittently responds with garbage?