v0.145.4Internal beta docs

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

Library Recovery

eXLib fails closed when it cannot prove how an interrupted library write ended. Preserve the library before attempting a repair: quit every After Effects window using it, duplicate the entire library folder, and work only in that disposable copy. The default location is ~/Documents/eXLib Library; Settings → Library shows the exact path.

Do not delete _meta/journal/*.json, a .claim path, or a journal staging directory to silence an error. A claim may be a file or a directory. These entries are recovery evidence, and merging a whole recovery copy over the original can destroy the very state needed to diagnose it.

Expression-folder recovery

Deleting an expression folder moves the complete folder into _meta/trash/. Its managed .js + .meta.json pairs and any files eXLib did not manage stay together in the timestamped trash folder.

In the disposable copy, find the trash folder whose suffix matches the deleted name. Verify its pairs and user files, then copy it into a new, non-reserved expression folder such as Recovered/motion. Do not restore it inside _meta, _packs, or _pseudo-effects. Open the disposable copy in eXLib and verify titles, source, counts, tags, packs, and user files before making item-level copies into a new folder in the original.

Pseudo-folder recovery

Pseudo deletion has two destinations. Managed rigs from the deleted folder and all descendants are already relocated to the deleted folder's parent under _pseudo-effects/; their .pseudo.json + .ffx pairs are not expected in trash. The timestamped _meta/trash/ folder holds the leftover directory tree, including files eXLib did not manage.

In the disposable copy, use eXLib to recreate the desired pseudo folders and move the relocated rigs into them. Recover quarantined user files separately by copying them from the matching trash folder to a safe location. Do not copy the whole trash bucket into _pseudo-effects/, where it could mix old files with newer managed pairs. The .pseudo.json file is the authored source; eXLib can regenerate a missing derived .ffx artifact.

Blocked journal recovery

In the disposable copy, inspect _meta/journal/*.json as text and record the id, label, phase, steps, and every terminal evidencePaths entry. Preserve _meta/journal/<id>/, every .claim path, and any named _meta/trash/ destination. A missing live path does not prove deletion completed: a helper may have isolated the exact entry under its journal recovery path.

Match the journal id in the eXLib log and preserve the original copy, journal JSON, log excerpt, eXLib version, operating system, and filesystem type for support. A blocked record is intentionally not replayed automatically. This guide does not authorize deleting or rewriting it by hand.

Verify before restoring

  • The original remained byte-for-byte untouched during diagnosis.
  • Every expression has both .js and .meta.json.
  • Relocated pseudo rigs are in the deleted folder's parent, not assumed to be in trash.
  • Every authored rig retains .pseudo.json; derived .ffx can be regenerated.
  • Quarantined user files were recovered separately from pseudo-rig organization.
  • Counts, folders, packs, tags, and ordering match what you expect.
  • The disposable copy survives a second successful launch before you change the original.