use cache if http request failed