I just got rid of all the CachedLocation code. The real problem was calling Resolver.initialize on a Berksfile more than once and having source.location as nil when cached_cookbook was not. Figured it would be easier to just make sure we don't call .validate_cached on nil.