Rewrite so that first request is handled without promise
Don't cache errors (aside from overlapping requests)