Returns true if an error is a permanent failure instead of a temporary one (broken network, 500, rate limit etc.)
fun ChatError.isPermanent(): Boolean