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
.jsand.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.ffxcan 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.