message: I think this is a valid fix
diff: @@ -164,6 +164,7 @@ namespace asset
  const IMeshManipulator* getMeshManipulator() const;
  protected:
  + //! _supposedFilename is filename as it was, not touched by loader override with _override->getLoadFilename()
  IAsset* getAssetInHierarchy(io::IReadFile* _file, const std::string& _supposedFilename, const IAssetLoader::SAssetLoadParams& _params, uint32_t _hierarchyLevel, IAssetLoader::IAssetLoaderOverride* _override)
  {
  IAssetLoader::SAssetLoadContext ctx{_params, _file};
  @@ -171,7 +172,6 @@ namespace asset
  std::string filename = _file ? _file->getFileName().c_str() : _supposedFilename;
  io::IReadFile* file = _override->getLoadFile(_file, filename, ctx, _hierarchyLevel);
  filename = file ? file->getFileName().c_str() : _supposedFilename;
  - // TODO what should happen here (after `filename = ...;`)? Open new file if previously it was nullptr?
  const uint64_t levelFlags = _params.cacheFlags >> ((uint64_t)_hierarchyLevel * 2ull);
  @@ -185,6 +185,10 @@ namespace asset
  return asset;
  }
  + // if at this point, and after looking for cache in cache, file is still nullptr, then return nullptr
  + if (!file)
  + return nullptr;
  +
  auto capableLoadersRng = m_loaders.perFileExt.findRange(getFileExt(filename.c_str()));
  for (auto loaderItr = capableLoadersRng.first; loaderItr != capableLoadersRng.second; ++loaderItr) // loaders associated with the file's extension tryout
  