Skip to main content

Troubleshooting

unsupported language

Symptom: A file is ignored by the scanner or the public parser returns an unsupported-language error.

Check: Confirm the filename ends in .go, .js, .jsx, .ts, .tsx, or .py. Detection is based on the final extension and is case-insensitive.

Remediation: Rename or convert the input, or use the Go API's WithLanguage option when the file extension is not representative. The CLI does not expose forced-language selection.

No Markdown appears

Symptom: The command succeeds but the output directory has no useful index.md.

Check: Run with --no-cache and inspect the command result. Confirm that the root contains supported files and that .gitignore, a built-in directory skip, or --exclude did not remove them.

Remediation: Run sunset clean <path> and then sunset parse --no-cache <path>. A successful project with at least one parsed file creates index.md and a files/ directory.

Update skips a file that should be re-parsed

Symptom: update reports a file as skipped after an unexpected result.

Check: Inspect .sunset/cache/cache.json and compare the source file with the last run. The cache key is the relative path and the value is a SHA-256 content hash.

Remediation: Run sunset parse --no-cache <path> to bypass the cache. If the generated state still looks wrong, clean .sunset and repeat the parse.

The process exits non-zero

Sunset returns non-zero for an invalid root, an engine-level failure, or when one or more files produced errors. Re-run without --quiet to see the result summary and per-file errors. With --quiet, normal output is suppressed and the current CLI also suppresses the result block that contains per-file error details.