CoplayDev/unity-mcp · error · ArgumentException
Chunk size must be larger than 0
Error message
Chunk size must be larger than 0
What it means
Thrown by NativePreviewGenerator.Validate() (NativePreviewGenerator.cs:39) when NativePreviewGenerationSettings.ChunkSize <= 0. ChunkSize controls batch sizing: WaitAndWritePreviewsChunked divides objects.Count by ChunkSize, and WaitAndWritePreviewIteration sizes the AssetPreview texture cache as ChunkSize*2. Zero/negative would cause a division/loop defect and a useless cache size. Thrown before GenerateImpl() and outside its try/catch, so it surfaces as an uncaught ArgumentException.
Source
Thrown at TestProjects/AssetStoreUploads/Packages/com.unity.asset-store-tools/Editor/Previews/Scripts/Generators/NativePreviewGenerator.cs:39
private RenderTexture _renderTexture;
private int _generatedPreviewsCount;
private int _totalPreviewsCount;
public override event Action<float> OnProgressChanged;
public NativePreviewGenerator(NativePreviewGenerationSettings settings)
: base(settings)
{
_nativeSettings = settings;
}
protected override void Validate()
{
base.Validate();
if (_nativeSettings.ChunkSize <= 0)
throw new ArgumentException("Chunk size must be larger than 0");
}
protected override async Task<PreviewGenerationResult> GenerateImpl()
{
var result = new PreviewGenerationResult()
{
GenerationType = _nativeSettings.GenerationType
};
OnProgressChanged?.Invoke(0f);
try
{
var objects = GetObjectsRequiringPreviews(_nativeSettings.InputPaths);
var filteredObjects = new List<PreviewMetadata>();
var reusedPreviews = new List<PreviewMetadata>();
FilterObjects(objects, filteredObjects, reusedPreviews);
View on GitHub (pinned to c21bf496bc)
Solutions
- Set NativePreviewGenerationSettings.ChunkSize to a positive value (e.g. 50 or 100) before Generate().
- Initialize ChunkSize together with WaitForPreviews and ChunkedPreviewLoading at construction.
- Confirm the chunk size field in the Preview Generator window (native mode) before generating.
Example fix
// before
var settings = new NativePreviewGenerationSettings { InputPaths = paths, OutputPath = outPath /* ChunkSize = 0 */ };
await new NativePreviewGenerator(settings).Generate(); // throws
// after
var settings = new NativePreviewGenerationSettings { InputPaths = paths, OutputPath = outPath, ChunkSize = 100 };
await new NativePreviewGenerator(settings).Generate(); Defensive patterns
Strategy: validation
Validate before calling
var s = settings as NativePreviewGenerationSettings;
if (s != null && s.ChunkSize <= 0)
throw new InvalidOperationException("NativePreviewGenerationSettings.ChunkSize must be > 0 before generating previews."); Type guard
static bool HasValidChunkSize(NativePreviewGenerationSettings s) => s != null && s.ChunkSize > 0;
Try / catch
try { await generator.Generate(); }
catch (ArgumentException ex) when (ex.Message.Contains("Chunk size")) { /* report invalid chunk size */ } Prevention
- Always set ChunkSize on NativePreviewGenerationSettings, even when ChunkedPreviewLoading is false (Validate checks it unconditionally).
- Pick a chunk size proportional to asset count (e.g. 50-200).
When it happens
Trigger: Calling Generate() on a NativePreviewGenerator whose ChunkSize is at its default 0 or explicitly <= 0. Triggered whenever the native generator is used, because Validate() checks ChunkSize unconditionally (not only when ChunkedPreviewLoading is true).
Common situations: Constructing NativePreviewGenerationSettings without setting ChunkSize (int default 0); assuming ChunkSize only matters when ChunkedPreviewLoading is enabled and leaving it 0 in the non-chunked path.
Related errors
- Width should be larger than 0
- Height should be larger than 0
- Depth should be larger than 0
- Native width should be larger than 0
- Native height should be larger than 0
AI-assisted analysis of CoplayDev/unity-mcp@c21bf496bc (2026-08-13).
Data as JSON: /api/errors/316a1bb392829950.
Report an issue: GitHub.