Troubleshooting
Start with the message code shown by Cleanup Runner. A Blocker describes a condition that must be resolved; it is not a prompt to weaken the Profile.
Profile does not appear
Section titled “Profile does not appear”Confirm that:
- the file ends in
*.cleanup.json; - it is saved below
Assets, or selected through External File; - it is valid JSON;
- it passes Cleanup Profile v1 Schema;
- it is outside the selected Source.
Use Refresh in Cleanup Runner after creating a new file.
UNMATCHED_ASSET
Section titled “UNMATCHED_ASSET”At least one Source asset did not match any rule.
Add a narrow rule based on a known type, extension, name condition, or path. For ambiguous assets, route them to an explicit Review destination instead of guessing settings.
Every source asset must Move or Delete, so unmatched assets always block Apply.
Path collision
Section titled “Path collision”Codes can include EXISTING_PATH_COLLISION, PLANNED_PATH_COLLISION, or SOURCE_PATH_COLLISION.
Check:
- duplicate final filenames;
- two rules producing the same target;
- stale output from an earlier run;
- Flatten routing applied to repeated filenames.
Rename intentionally, choose a different destination, remove stale output manually after review, or use Preserve Structure.
The Executor never overwrites an existing asset.
Unsafe Source or destination
Section titled “Unsafe Source or destination”Codes such as SOURCE_INVALID, DESTINATION_INSIDE_SOURCE, PROFILE_INSIDE_SOURCE, or a quarantine-path error indicate an unsafe layout.
Source must be one Assets/... child folder. Profile, processed output, extracted animation output, static Prefab output, and quarantine must remain outside it.
Invalid or timed-out Regex
Section titled “Invalid or timed-out Regex”Check the specific path, naming, component, or FBX clip Regex. Reduce unnecessary backtracking and keep the timeout inside the supported range.
Prefer literal prefix, suffix, extension, or keyword conditions when possible.
PROFILE_OTHER_MATCH_TOO_BROAD
Section titled “PROFILE_OTHER_MATCH_TOO_BROAD”An Other rule has no explicit extension, name, or path selector.
Add an explicit condition. CoCo Asset Flow does not allow an unbounded Other catch-all because it would treat business-specific files as equivalent.
Compilation-sensitive asset is blocked
Section titled “Compilation-sensitive asset is blocked”Scripts, assemblies, native plugins, and related files require:
- Preserve Structure routing;
- unchanged filename;
- an explicit matching rule.
These assets are moved last while Unity assembly reload is delayed.
TEXTURE_SETTINGS_UNCHANGED_REVIEW
Section titled “TEXTURE_SETTINGS_UNCHANGED_REVIEW”The Texture is being moved without a Texture action.
This is expected for unknown Textures in a Review rule. Inspect the asset and decide whether its current settings are correct or whether a narrower semantic rule is required.
Prefab Missing Scripts
Section titled “Prefab Missing Scripts”PREFAB_MISSING_SCRIPTS_BLOCK_EDIT means the Profile requests a Prefab content change while Missing Script components prevent Unity from safely saving it.
Either:
- explicitly enable Remove Missing Scripts; or
- remove the Prefab content-edit actions and perform a move-only cleanup.
The package does not silently delete Missing Scripts.
External FBX Materials are unresolved
Section titled “External FBX Materials are unresolved”Codes such as FBX_EXTERNAL_MATERIAL_UNRESOLVED or FBX_MATERIAL_BINDING_AMBIGUOUS mean the current importer state does not prove one safe Source Identifier-to-Material mapping.
Resolve it by:
- creating a unique explicit importer remap;
- using a provably unique material-name binding; or
- adding Source-specific
materialBindingsfrom a fresh Inventory.
Do not pair materials by array order or an unproven filename guess.
Apply became stale
Section titled “Apply became stale”If Source, Profile, or project state changes after Preview, Apply is disabled.
Run Validate + Preview again and review the new Plan ID.
Apply failed and rolled back
Section titled “Apply failed and rolled back”Open Reveal Report and inspect:
- the primary Failure Incident;
- rollback attempted/passed state;
- first affected asset;
- referenced canonical audit sidecar, if present.
Do not immediately repeat Apply against the same project state. First identify whether the failure came from a Profile assumption, a Unity import behavior, an ambiguous reference, or an unsupported asset.
If rollback is incomplete, restore a known project backup or version-control baseline before another destructive attempt.
Source is not empty
Section titled “Source is not empty”VERIFY_SOURCE_NOT_EMPTY means at least one asset remained after staged execution.
Use the Report to identify the remaining path. A successful run leaves the Source root folder present but with zero assets.