Roblox 'Failed to load animation with sanitized ID' – Fix
The error
Failed to load animation with sanitized ID rbxassetid://1234567890: Animation failed to load
Roblox only lets an experience play animations owned by whoever owns the experience: your account for a personal game, the group for a group game. When that check fails, or the ID does not point to a usable animation, the track never plays and this line appears in Output. Work through these causes in order.
1. The animation is owned by the wrong account
If the game belongs to a group, the animation must be published to that same group, not to your personal profile. If the game is yours, it must be published by you. Animations from someone else, or from the Creator Store, generally will not load in your game. Open the rig in the Animation Editor, use Publish to Roblox, choose the correct owner (you or the group), and use the new ID.
2. It works for some Team Create members but not others
If the animation plays in the live game and for the uploader, but fails in Studio for other team members, it is a Studio permission problem, not your script. In July 2025 Roblox staff confirmed a bug where group animations do not load in Studio for members whose role lacks the legacy Create and edit community experiences permission, and said a fix was coming. Turning that permission on for the role is the workaround they gave.
3. The ID is wrong or not an animation
Check you copied the animation asset ID, not a model, place or bundle ID, and that the number is complete. If the message ends in AnimationClip loaded is not valid, the asset is not a usable published animation: republish it from the Animation Editor.
4. Loading on the wrong object or too early
Load animations through the Animator inside the Humanoid (or AnimationController), after the character exists. Loading on the client is fine for the local player; the animation still replicates.
Debug snippet
-- LocalScript in StarterPlayer > StarterCharacterScripts
local ContentProvider = game:GetService("ContentProvider")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://1234567890" -- your animation ID
-- tells you whether the asset itself can be fetched
ContentProvider:PreloadAsync({ animation }, function(assetId, status)
print("Preload:", assetId, status) -- Enum.AssetFetchStatus.Success or Failure
end)
local track = animator:LoadAnimation(animation)
track:Play()
print("Track length:", track.Length) -- 0 usually means it did not loadIf the preload status is Failure, the problem is ownership or the ID (causes 1 and 3). If it succeeds for you but a teammate sees the error, check their group role (cause 2).
Real reports of this error: DevForum: Failed to load animation with sanitized ID, DevForum: some Team Create users cannot see animations and DevForum: group animations, with the Roblox staff reply.
Related errors
- roblox infinite yield possible
- roblox is not a valid member of
- roblox attempt to index nil with
- roblox screengui not showing
Related tools: Roblox script generator · Roblox Lua error fixer · all script generators