SDK allows uploading avatars without thumbnails when first upload is aborted in some ways.
Steps to reproduce
Steps A: SDK Only
  1. Create new avatar
  2. Initiate build and upload
  3. Accept copyright agreements
  4. The upload aborts with one of following reasons
- Asset bundle size limit exceeded
- Network errors
- Unity Editor Crash during build
  1. Re-start unity editor (or re-open control panel) to clear thumbnail path internally hold
  2. Open the control panel. You'll see the name, description, and others are filled but no thumbnails assigned.
  3. Re-upload the avatar.
  4. The avatar has asset bundle but no thumbnail when upload in step 7 successfully finished.
Steps B: With API
  1. Call
    VRCApi.CreateAvatarRecord
    and assign blueprint id returned to the PipelineManager of an avatar.
  2. Open Control Panel. You'll see the name, description, and others are filled but no thumbnails assigned.
  3. Upload the avatar with control panel or
    VRCSdkControlPanelAvatarBuilder.BuildAndUpload
    API.
  4. The avatar has asset bundle but no thumbnail when upload in step 3 successfully finished.
In SDK 3.9.0, upload in 3 would fail with exception so avatars without thumbnails are prohibited.
The cause of the problem
This was caused by incorrect assumption in the control panel and the API: avatars with blueprint id assigned will always have thumbnails.
However this is not correct for some cases I described above.
I think control panel and API should check if thumbnails exist as noted as possible bug 4 in previous canny comment and control panel should require users to assign thumbnails before upload if not assigned, and API should throw exception if no thumbnail path is provided.