> For the complete documentation index, see [llms.txt](https://docs.interlynk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.interlynk.io/lynkctl/diagnostics.md).

# Diagnostics & Exit Codes

lynkctl emits structured diagnostics to stderr during SBOM generation. They tell you what lynkctl could not determine and why, so you can decide whether an SBOM is complete enough to use.

***

## The Summary Line

After the BOM is written, lynkctl prints a summary line to stderr:

```
SBOM generated: 5 components, 2 warnings, 0 errors
```

Suppress this line with `--quiet`. Run with `--verbose` (`-v`) to show individual diagnostics, grouped by severity — errors first, then warnings, then info. `-v` is repeatable: `-vv` adds provenance detail, `-vvv` adds a timing trace. Diagnostics produced from evidence resolution include the relevant evidence IDs in verbose output.

```
  [error] GNU_MAKE_NOT_FOUND: GNU Make not found in PATH
    → install with: brew install make
  [warning] EVIDENCE_CONFLICT: conflicting evidence for component:zlib identity field version
```

## Severity Levels

| Level       | Shown by default      | Description                                                                                                         |
| ----------- | --------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **error**   | Yes                   | The SBOM cannot be produced or is fundamentally invalid. You must act before the output is trustworthy.             |
| **warning** | Yes                   | The SBOM was produced, but a known limitation reduced fidelity, or a specific call deserves review.                 |
| **info**    | Only with `--verbose` | A non-trivial choice lynkctl made. SBOM-affecting choices surface with `-v`; provenance and debug notes with `-vv`. |

## Exit Codes

| Code | Meaning                                                                                 |
| ---- | --------------------------------------------------------------------------------------- |
| `0`  | Success                                                                                 |
| `1`  | Runtime error, or diagnostics contained errors, or `--strict` and a warning was present |
| `2`  | Usage error (bad flag, missing path, conflicting options)                               |

## Strict Mode

With `--strict`, any warning-level diagnostic causes lynkctl to exit with code `1` after writing the SBOM. This is designed for CI gates where incomplete or uncertain SBOMs should block the pipeline.

```bash
lynkctl generate . --strict
# Exit code 1 if any warnings are present
```

See [Running in CI/CD](/lynkctl/how-to-guides/ci-cd.md) for full pipeline examples.

## Diagnostic Codes

Each diagnostic carries a stable code, such as `GNU_MAKE_NOT_FOUND` or `EVIDENCE_CONFLICT`. Run with `-v` to see the codes a given run produced, along with their messages and suggested actions.

The full catalogue of diagnostic codes is internal and evolves with the tool. Contact Interlynk if you need the complete reference for a specific code or for audit purposes.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.interlynk.io/lynkctl/diagnostics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
