#3096·stride

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 285

To Reproduce

  1. add in \Assets\ a "blabla.sdsl" file
  2. make sure its empty

Expected behavior either

  1. asset compiler just ignores the file
  2. or gives a proper exception that the file is empty and that its clearly forbidden to have that