Example: You have a loadbalancer in between Puppet and Foreman and it'll serve a 503 when the backend(s) (actual Foreman) are down, it wouldn't serve from the cache without this new NodeRetrievalError exception
So raising the exception, still logging a useful message but serving from cache makes the most sense here
Serve from cache when response.code != 200
Example:
You have a loadbalancer in between Puppet and Foreman and it'll serve a 503
when the backend(s) (actual Foreman) are down, it wouldn't serve from the
cache without this new NodeRetrievalError exception
So raising the exception, still logging a useful message but serving
from cache makes the most sense here