Description

This is a common crash affecting users in 4.16 and the 4.17 Previews. The two descriptions provided by users say their crash occurred after updating their project from 4.13.

User Descriptions

  • Upgrading a project from 4.13 to 4.16.1
  • unable to open project from older UE (4.13)

Source Context

 53       FCompressedChunk::FCompressedChunk()
   54       :	UncompressedOffset(0)
   55       ,	UncompressedSize(0)
   56       ,	CompressedOffset(0)
   57       ,	CompressedSize(0)
   58       {
   59       	checkf(0, TEXT("Package level compression cannot be used with the async io scheme."));
   60 ***** }
   61       
   62       /** I/O function */
   63       FArchive& operator<<(FArchive& Ar,FCompressedChunk& Chunk)
   64       {
   65       	checkf(0, TEXT("Package level compression cannot be used with the async io scheme."));
   66       
   67       	Ar << Chunk.UncompressedOffset;
   68       	Ar << Chunk.UncompressedSize;
   69       	Ar << Chunk.CompressedOffset;
   70       	Ar << Chunk.CompressedSize;
   71       	return Ar;
   72       }
Steps to Reproduce

This is kinda complicated.

Get an old build. 4.13 seems like a good bet.

Cook something. Cook-by-the-book. Critically we need -compressed on the cooker command line. This is probably a packaging option. After the cook, examine the cooker log file and confirm that -compressed it listed as an argument to the process.

The cooked files will end up in game/saved/cooked/platform/game/content.

Grab a directory of those cooked files. They are poison.

Now get a recent build, like 4.16 or 4.17. Place the poison files somewhere that the asset registry will see them. Like just dump them into game/content/poisonfiles/.

Now boot the 4.16 or 4.17 editor for the game you placed the poison files. You should see this crash.

Now get dev-core @ 3555697 and compile an editor, place the poison files again and boot the editor. There should be no crash though perhaps the asset registry will complain about the poison files.

Now try to load a poison file. Again, there should be a complaint, but it should not crash.

Callstack
Assertion failed: 0 [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Linker.cpp] [Line: 60] 
Package level compression cannot be used with the async io scheme.

UE4Editor_CoreUObject!FCompressedChunk::FCompressedChunk() [linker.cpp:61]
UE4Editor_CoreUObject!operator<<() [array.h:1113]
UE4Editor_CoreUObject!operator<<() [packagefilesummary.cpp:254]
UE4Editor_AssetRegistry!FPackageReader::OpenPackageFile() [packagereader.cpp:65]
UE4Editor_AssetRegistry!FAssetDataGatherer::ReadAssetFile() [assetdatagatherer.cpp:834]
UE4Editor_AssetRegistry!FAssetDataGatherer::Run() [assetdatagatherer.cpp:595]
UE4Editor_Core!FRunnableThreadWin::Run() [windowsrunnablethread.cpp:76]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-47668 in the post.

0
Login to Vote

Fixed
ComponentUE - Foundation - Core
Affects Versions4.164.17
Target Fix4.17.2
Fix Commit3602360
Main Commit3620189
CreatedJul 24, 2017
ResolvedAug 22, 2017
UpdatedJan 13, 2021