Empty SDSL file crashes AssetCompiler
Author: IXLLEGACYIXLCreated Mar 20, 2026Updated Sep 8, 2026
Labelsbug
Release Type: Official Release
Version:
Platform(s):
Describe the bug Empty sdsl file crashes AssetCompiler and gives non connected exception
>EXEC : error 2,254s: [AssetCompiler] Unhandled exception. Exception: EndOfStreamException: Unable to read beyond the end of the stream.
1> at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream)
1> at System.IO.BinaryReader.InternalRead(Span`1 buffer)
1> at System.IO.BinaryReader.ReadInt32()
1> at Stride.Core.Serialization.BinarySerializationReader.Serialize(Int32& value) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\core\Stride.Core\Serialization\Binary\BinarySerializationReader.cs:line 50
1> at Stride.Core.Serialization.Contents.ChunkHeader.Read(SerializationStream stream) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\core\Stride.Core.Serialization\Serialization\Contents\ChunkHeader.cs:line 47
1> at Stride.Core.Assets.CompilerApp.BundlePacker.GetChunkReferences(DatabaseFileProvider databaseFileProvider, ObjectId& objectId) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\BundlePacker.cs:line 308
1> at Stride.Core.Assets.CompilerApp.BundlePacker.CollectBundle(DatabaseFileProvider databaseFileProvider, ResolvedBundle resolvedBundle, String assetUrl) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\BundlePacker.cs:line 368
1> at Stride.Core.Assets.CompilerApp.BundlePacker.Build(Logger logger, PackageSession packageSession, Package rootPackage, String indexName, String outputDirectory, ISet`1 disableCompressionIds, Boolean useIncrementalBundles, List`1 bundleFiles) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\BundlePacker.cs:line 152
1> at Stride.Core.Assets.CompilerApp.PackageBuilder.BuildMaster() in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\PackageBuilder.cs:line 161
1> at Stride.Core.Assets.CompilerApp.PackageBuilder.Build() in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\PackageBuilder.cs:line 50
1> at Stride.Core.Assets.CompilerApp.PackageBuilderApp.Run(String[] args) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\PackageBuilderApp.cs:line 285
1> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
1> at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream)
1> at System.IO.BinaryReader.InternalRead(Span`1 buffer)
1> at System.IO.BinaryReader.ReadInt32()
1> at Stride.Core.Serialization.BinarySerializationReader.Serialize(Int32& value) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\core\Stride.Core\Serialization\Binary\BinarySerializationReader.cs:line 50
1> at Stride.Core.Serialization.Contents.ChunkHeader.Read(SerializationStream stream) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\core\Stride.Core.Serialization\Serialization\Contents\ChunkHeader.cs:line 47
1> at Stride.Core.Assets.CompilerApp.BundlePacker.GetChunkReferences(DatabaseFileProvider databaseFileProvider, ObjectId& objectId) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\BundlePacker.cs:line 308
1> at Stride.Core.Assets.CompilerApp.BundlePacker.CollectBundle(DatabaseFileProvider databaseFileProvider, ResolvedBundle resolvedBundle, String assetUrl) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\BundlePacker.cs:line 368
1> at Stride.Core.Assets.CompilerApp.BundlePacker.Build(Logger logger, PackageSession packageSession, Package rootPackage, String indexName, String outputDirectory, ISet`1 disableCompressionIds, Boolean useIncrementalBundles, List`1 bundleFiles) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\BundlePacker.cs:line 152
1> at Stride.Core.Assets.CompilerApp.PackageBuilder.BuildMaster() in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\PackageBuilder.cs:line 161
1> at Stride.Core.Assets.CompilerApp.PackageBuilder.Build() in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\PackageBuilder.cs:line 50
1> at Stride.Core.Assets.CompilerApp.PackageBuilderApp.Run(String[] args) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\assets\Stride.Core.Assets.CompilerApp\PackageBuilderApp.cs:line 285To Reproduce
- add in \Assets\ a "blabla.sdsl" file
- make sure its empty
Expected behavior either
- asset compiler just ignores the file
- or gives a proper exception that the file is empty and that its clearly forbidden to have that
Source: stride3d/stride