v0.145.4Internal beta docs

Beta documentation · eXLib v0.145.4. Public release is pending.

Troubleshoot a Broken Rig

Something in a project you didn't build has stopped working, and the only clue is that a layer isn't moving.

The task

  1. Find the expressions.
  2. Find the broken one.
  3. Work out what it was pointing at, and what happened to that thing.
  4. If it's not your bug, hand over something someone else can act on.

How it goes in plain After Effects

  1. Reveal the expressions in a comp: select all layers (Cmd/Ctrl+A) and press EE. Only properties carrying an expression stay visible.
  2. Look for the marked one. A property whose expression errored is switched off and flagged; hover the flag to read After Effects' message.
  3. Read the expression in the inline field to work out what it references.
  4. Check each reference by hand — does that layer still exist, is that effect still named that, is it even in this comp.
  5. Repeat per composition. EE works on the comp you're in, so a rig spread across precomps is walked one comp at a time.
  6. To get help, describe the problem, or send the project file.
i

EE is the right tool for step 1 and worth the muscle memory. What it can't do is tell you what an expression reads, or what reads it.

What changes with eXLib

Four surfaces, each answering a different question.

  • Comp Expressions (IDE toolbar) — the expression-bearing properties found by a bounded active-comp scan, in one list, searchable by property name or by the text of the expression. That second mode is the one that finds "the expression that mentions that null" when you have no idea which property it's on. Double-click a row to reveal it in the timeline.
  • The editor's diagnostics — pull the expression in and read what's actually wrong with it: the status bar's Error/Warning/Info counts, the underline, the hover with the full message, F8 / Alt+F8 to walk the problems.
  • The Dependency Map (IDE toolbar) — the graph. Depends on fans in: everything this expression's chain actually reads. Drives fans out from a controller, at the parameter level: each expression the bounded scan resolves as reading it. Missing (N) filters the graph to the references that did not resolve — which is the fastest route to "this points at a layer that isn't there any more". The map is comp-scoped.
  • The Evaluator (⌃⇧⌘E) — run a fragment of the expression and see what it resolves to, without touching any property.

Handing it over:

  1. Settings → Companion → turn Debug logging on.
  2. Reproduce the problem.
  3. Export debug bundle — one text file on your Desktop, carrying versions, preferences and recent log output from the panel and the companion.
  4. Add the build stamp from Settings → About.
✓

Turn Debug logging back off afterwards. It's off by default and only needed while you're reproducing something.

Step by step

Step In plain After Effects With eXLib
1. Find the expressions in this comp Select all layers, press EE Open Comp Expressions — the bounded scan lists what it found and flags partial results
2. Find the one that mentions a given layer Read each expression in turn Search the list by expression text
3. Jump to the property Scroll the timeline to it Double-click the row — it's selected and revealed
4. See what's wrong with the code Hover AE's flag for its message Live diagnostics: counts in the status bar, the underline, the full message on hover, F8 to walk them
5. See what it reads Read the code and check each name by hand Dependency Map → Depends on — the resolved chain as a graph
6. See what reads a controller Not available — search every expression yourself Dependency Map → Drives, at the parameter level
7. Find dead references Check each name against the timeline Missing (N) filters the graph to exactly those
8. Test a fragment Put it on a property and see what happens Evaluator (⌃⇧⌘E) — run it against the selected or pinned property, or in Scratch
9. Cover a rig spread over precomps Repeat EE per comp The map is comp-scoped too — but the picker browses any comp, and reveal takes you there
10. Escalate Describe it, or send the project Debug logging on → reproduce → Export debug bundle → attach it with the build stamp