[BUG] Animation Layer nodes self-connect (cycle) after save/reopen on referenced rigs — Maya 2024.2

Software: Maya 2024.2, scene with a referenced rig using Animation Layers

Summary

An Animation Layer blend node (animBlendNodeAdditiveRotation) spontaneously became connected to itself — its own output attribute wired back into one of its own input attributes — instead of the correct animCurve node. This creates a dependency cycle:

Warning: Cycle on '<namespace>:<ctrl>_rotate_AnimLayer1.inputAZ' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)

Reproduction context

  • Referenced rig + Animation Layers.

  • The scene had previously gone through a Merge Layers operation, leaving both an AnimLayer1 curve set and a Merged_Layer curve set — both normally connected simultaneously in a known-good version of the scene (verified: both sets feed Input A and Input B on the same blend node in parallel).

  • Autosave taken shortly before the final save showed no cycle — all inputA* attributes were correctly connected.

  • After a normal File > Save and reopening the file, outputX/Y/Z on the node were connected directly back to inputAX/AY/AZ on itself, and the Merged_Layer animCurve nodes that used to feed Input A were left completely disconnected/orphaned.

  • No manual node editing, no Undo, nothing unusual done by the animator between autosave and the final save.

  • Diagnosis

    mel

    listConnections -p 1 -s 1 -d 0 "<namespace>:<ctrl>_rotate_AnimLayer1.inputAZ";
    // Result: <namespace>:<ctrl>_rotate_AnimLayer1.outputZ
    

    Same self-loop pattern confirmed on X, Y and Z simultaneously.

    Fix applied

    1. Disconnected the self-loop on all three axes.

    2. Identified the orphaned Merged_Layer animCurve nodes by comparing against a known-good backup.

    3. Reconnected each orphaned curve’s .output back to the corresponding inputA*.

    4. Verified playback matched the reference scene, then re-saved.

    Known prior report (different version)

    Matches a bug independently documented by technical animator Michael Howard in 2018 against Maya 2017: referenced-rig files with animation layers randomly save invalid connectAttr calls causing the layer node to connect to itself, and the bug only shows up after the file is reopened. Source: https://hoorayfor3d.com/2018/07/animation-layer-bug-in-maya/

    Why does this happen — what I actually know vs. don’t

    Honestly, I don’t have a confirmed root cause, and I want to flag that clearly so this doesn’t read as more certain than it is:

    • What’s consistent across both my case (2024.2) and the 2017 report: referenced rig + Animation Layers + something that leaves multiple curve sets around (in my case, a prior Merge Layers). Both cases show the same symptom — self-loop only appears after save/reopen, not during the live session.

    • What’s plausible but unconfirmed: the bug likely lives in how Maya serializes/deserializes animBlendNode connections when reference edits and merged-layer leftovers are both present — reopening a file rebuilds connections from stored edits, and something in that resolution step seems to occasionally wire a node’s own output back into its own input instead of the correct external source. I have no evidence this is specific to Parallel Evaluation — that was my own earlier speculation, not something I can back up.

    • What I can’t explain: why it’s intermittent rather than 100% reproducible, and whether it’s specifically triggered by the Merge Layers leftovers or would also happen without them.

    Questions for the community

    • Has this reproduced reliably for anyone, i.e., found the exact trigger?

    • Any confirmation this still exists in 2024.2 specifically (my case) vs. being fixed and re-introduced across versions?

    • Does cleaning up orphaned Merge Layer curves right after merging (rather than leaving both sets in the scene) prevent this?

    • Any known relationship to reference edits resolution order on file load?

I see you found Michael Howard’s script. We used that to fix the issue. Worked in about 80% of cases.

For Us it seemed to happen when an artist attempted to save a maya ( with references and anim layers) file that was read-only (not checked out in perforce). Maya seems to begin some processes to save before a read only test, and then abandons the operations when it cannot save, leaving the file in a corrupted state when the file is checked out and finally saved.

We have not seen this issue for a few years however.
Might be better animator discipline, might be fixed since Maya 2018

2 Likes

A bug that I never wanted to see or hear about again! :upside_down_face: Wild that it’s still occurring. When we encountered previously, it was 100% reproducible in a scene with a referenced rig, animation layers, and attempting to save a read-only file (typically not checked out in source control), then checking out and saving again. I can’t recall if there were other instances of it occurring or not. But it was happening enough that it warranted the initial investigation and resulting code.

2 Likes