This issue occurs for my avatar editing system. My method is to clone a character model from ReplicatedStorage, apply the wanted description via Humanoid:ApplyDescription, then return it to the client to be viewed in a ViewPortframe. Because of this, the model never gets parented to workspace, and the assets are not properly applied to the character. Everything is added to the character properly when the description is applied - it just fails to appear in the correct location on the character model when viewed in the Viewport frame. When I apply those same changes to my character in the workspace, the system works flawlessly.
As a side note, pants and shirt work fine. I think this is because they don’t rely on 3d space (or whatever is used to determine the positioning of accoutrements). However, the faces also fail to apply to the character when it is not parented to workspace. I’m not sure if that’s a related issue, but I believe it is, so I’ll include the error message here.
I am including a small repro file where you can see the bug reproduced for yourself. It assumes you don’t have this on already when joining. I have also added a tool that you can use to rotate the character in the viewport to find the hat lying on the ground somewhere, just click and drag. Here are images of what’s going on:
When the model is parented to the workspace, the hat snaps into place immediately:
Ideally, I should be able to add assets to a character within a viewport frame without having to route it through workspace.
Thanks!