Animation Error with Atomic Characters

I recently did an update on my game where I made it so the character models have their streaming mode set to atomic when the character is added. This is because it fixes some bugs where I handle client effects based on whether the character is streamed in or out.

After doing so I’ve got a huge increase in errors (4.8M today) saying “exception while signaling: Cannot load the AnimationClipProvider Service.” on the client.

I have noticed this on my windows 11 laptop and my iPhone 13

Here is my game link: Saber Showdown - Roblox

Expected behavior

I expect there to be no errors.

9 Likes

It may actually be an animation that doesn’t behave properly. Recently Roblox has implemented changes that result in animations sometimes thinking you aren’t the owner/creator of them, which stops you from using them. I suppose you could check those animations, especially if you added new animations in that update.

5 Likes

I didn’t add any new animations and it seemed to happen immedietly after I made the change to atomic characters.
image

the other updates were just some small changes to UI and some stuff to check state but I don’t think that caused it.

As a side note though I also do get this error sometimes but much less.
“Failed to load animation - sanitized ID: rbxassetid://2859806499”

2 Likes

Idk if is intended but this is how many player’s console is looking like in my game which also has Atomic Characters.

3 Likes

Thanks for the report! We’ll follow up when we have an update for you!

4 Likes

It’s even happening in Expedition Antartica

1 Like

Any updates regarding this please? I appreciate your effort trying to solve this.

2 Likes

Hi
Same issue here. It doesn’t seem to affect anything other than just spamming the output.
I that’s the case, then I’d like for the error to be removed/suppressed so it doesn’t spam the analytics.

3 Likes

Thanks for your feedback!
This error almost certainly means that loadAnimation() was called on an Animator that is not currently attached to the workspace. (eg, if it was atomically streamed out but not yet destroyed.)
Of course, the local player should never be streamed out.
Is it possible you are playing some animations on a character that’s not the local character?
(Often Devs will play certain prop animations locally on unowned NPCs or player characters if they don’t need to be replicated.)
If so, it might be dangerous to assume that an unowned model is still in the workplace if atomic streaming is enabled, as it may be streamed out.
Can you guys try putting a “parent” check on the Model that owns the Animator/Humanoid used in the call to LoadAnimation and see if the parent is ever missing?
I notice that Saber Showdown caches the character model in the state objects, then calls LoadAnimation on state.character. This should be fine as long as state only applies to the local player.
(We haven’t had luck yet reproing the issue locally on Saber Showdown.)

Hi all, let us know if you are still experiencing this issue after trying @BloxMachina’s suggested fix. We are going to mark this as no-repro for now but can reopen and take another look if it’s still an issue!

EDIT: I’ve opened a separate bug report for this issue as I don’t think this one is getting viewed anytime soon: AnimationTrack loading/playing causing errors on improved model streaming behaviour - #2 by Focia19

Original reply:

Apologies for bumping this thread, but I came across this specific error which persistently occurs on an experience I develop for - although it doesn’t produce any visual artifacts regarding animations, I managed to isolate one reproduction pattern and am seeking feedback on how to handle it to avoid this error from occurring in the future.

To preface (though I’m unsure if this information is relevant), our experience handles animation replication from each client seperately without the use of the server loading animations for clients. This means that we instantiate the Animator class manually whenever a new character is loaded as reflected in the documentation, with any animation replication occurring automatically whenever an AnimationTrack is loaded/played through a LocalScript.

We also make use of Opportunistic stream out behaviour and especially prefer this as our characters are loaded with a custom mesh rig for R15 that has a high triangle count - in large servers, rendering many characters at once is a performance issue for our players, so having characters stream out to avoid players having to render and account for all characters at once is preferable to mitigate this performance loss.

Now onto the issue itself: in a server with other players in it, if a player has their character loaded and proceeds to load and play an AnimationTrack (through the method described above), and another player does not have their character streamed in for themselves, that other player will throw the error described in the original post. I’ve investigated methods provided by other developers who were facing this issue but unfortunately could not get them to work for myself. It also appears to be sporadic, and will stop after a few seconds after having their character loaded in.

Here is a short video which demonstrates this:
Video

I’d appreciate any possible feedback as to how I can mitigate this issue, or if it can be addressed in the future. I want to achieve the functionality of having characters be streamed in/out so each player, especially if they play at higher graphics, but having this error produce constantly is a huge headache when other non-technical players are filing bug reports and are under the impression that this is a cause of whatever they are reporting when it is not (it also will bury actual errors).

If needed, I can provide access to the development place where this can be replicated in - currently, our live build has characters set as persistent models to avoid this issue, which was done as a last resort.

For people who are still experiencing this issue, I think the cause behind this is improved model streaming behavior (ModelStreamingBehavior | Documentation - Roblox Creator Hub) - try setting it to legacy in your experiences to see if it will resolve it. After repeating the same reproduction steps on my own experience after this change I found that the error wasn’t producing at all.