Troubleshooting
Troubleshoot ImageForge CLI
Diagnose common failures without editing generated metadata by hand.
Check mode fails
Use the effective-option command printed in the failure output after reviewing shell quoting for your terminal, inspect the generated diff, and rerun --check. Build and check commands must use identical formats, quality, widths, filters, and output directories.
A source was deleted
Published version 0.1.10 rewrites the manifest and cache to current empty state after the final source is deleted. Review and remove orphaned derivative files explicitly; ImageForge does not delete them automatically.
Next.js still transforms the image
Confirm src points to the generated WebP/AVIF path. Add unoptimized or an equivalent custom loader; otherwise next/image can send the already-generated file through its runtime optimizer.
Output collision
Rename colliding sources or choose a disjoint output directory. Collision checks are case-insensitive to keep behavior portable across filesystems.
Sharp cannot install or load
ImageForge depends on Sharp's native binaries. Confirm Node.js 20 or newer, the target platform support, and that the package manager was allowed to install required native artifacts. Reproduce from a clean frozen install before changing image options.
Permission or overwrite failure
Confirm the process can read the input tree and write the manifest, cache, output directory, and derivative parents. Do not bypass an existing-output warning until you have identified which source owns the target; use --force-overwrite only after that review.
Unsupported or animated input
Published version 0.1.10 discovers jpg, jpeg, png, gif, tiff, and tif sources. WebP and AVIF are output formats, not source inputs. GIF handling is static and uses the first frame, so use a different workflow when animation must be preserved.
Large catalog or memory pressure
Lower --concurrency, narrow discovery with include/exclude globs, or process bounded directories separately. Keep each width set intentional because every effective width and format adds derivative work.
imageforge ./public/images --concurrency 2 --include '**/*.jpg' --include '**/*.png'A requested width is missing
Widths are source-bounded targets, not guaranteed output dimensions. ImageForge filters candidates that would upscale the source, caps each run at 16 unique widths, and records the effective widths in imageforge.json.