fix bug: save empty response to cache