> For the complete documentation index, see [llms.txt](https://sealights-docs.tricentis.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sealights-docs.tricentis.com/setup-and-configuration/command-line-interface/monitor-your-pipeline-for-build-modifications.md).

# Monitor your Pipeline for Build Modifications

## Monitor your Pipeline for Build Modifications

Build Mods monitoring creates Build Modifications in SeaLights from the transports you import into the pipeline's QAS system. It runs as a scheduled task every five minutes.

Before you start, make sure that:

* The [Initial Build Map](broken://pages/6f4WDLP7ZxZdqhvqwcMb) for the pipeline has finished successfully.
* The ABAP Agent server is running.
* Production usage data exists for the pipeline's PRD RFC Destination (the Initial Build Map creates it).

{% hint style="warning" %}
Do not run `buildmods run` while the Initial Build Map is still in progress.
{% endhint %}

## `slabapcli buildmods run`

Starts monitoring a pipeline's QAS system for Build Modifications.

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Syntax" overflow="wrap" %}

```batch
slabapcli.exe buildmods run --pipeline <pipeline-name>
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Syntax" overflow="wrap" %}

```powershell
.\slabapcli.exe buildmods run --pipeline <pipeline-name>
```

{% endcode %}
{% endtab %}
{% endtabs %}

| Parameter          | Required | Description                                      |
| ------------------ | -------- | ------------------------------------------------ |
| `-p`, `--pipeline` | Yes      | The pipeline name (as shown in `pipeline list`). |

### Example

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Command" overflow="wrap" %}

```batch
slabapcli.exe buildmods run --pipeline "ALM_Demo-S21"
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Command" overflow="wrap" %}

```powershell
.\slabapcli.exe buildmods run --pipeline 'ALM_Demo-S21'
```

{% endcode %}
{% endtab %}
{% endtabs %}

{% code title="Expected output (PowerShell)" overflow="wrap" lineNumbers="true" %}

```log
.\slabapcli.exe buildmods run --pipeline 'ALM_Demo-S21'
[2025-06-18 09:24:49.485+01:00] [info] Detected Windows version: Windows 11
[2025-06-18 09:24:49.486+01:00] [info] Config pathname: C:\ProgramData\Tricentis\SeaLights\ABAP Agent\config\config.toml
[2025-06-18 09:24:49.516+01:00] [info] Run scheduled daily. interval = 00:05:00.
```

{% endcode %}

The command creates the scheduled task `BUILD_MODS_<pipeline>` in the `\SeaLights` folder of Windows Task Scheduler. It runs every five minutes under the NETWORK SERVICE account. If a task for the pipeline already exists, the command replaces it.

### Incremental cache and link refresh (2.1+)

Starting in ABAP Agent **2.1**, a run usually refreshes only what the imported transports changed, which keeps cycles short on large SAP landscapes. Occasionally, for example after an upgrade or when a transport changes a very large number of objects, the agent does a fuller refresh automatically. That run takes longer, and no action is needed. To tune when this happens, see `foldedobjectthreshold` in [Configuration settings](broken://pages/DZM4uWEu5r51kMDWCmDB#buildmods).

{% hint style="info" %}
Stop Build Mods monitoring while you import transports, and start it again when the import finishes.
{% endhint %}

### Where monitoring resumes

Each run continues after the last transport that was uploaded to SeaLights for the pipeline, so failed uploads are retried on the next run. On the first run after a fresh installation or an upgrade, the agent starts after the latest build of the app in SeaLights. This requires at least one completed build of the app, and the Initial Build Map counts. A manual check of a single transport (see [Validate your pipeline setup](broken://pages/jGsSRDkKfOoRdFm3tqxl)) does not change where monitoring resumes.

If the first run fails because no starting point is found, see [Troubleshooting](broken://pages/DTAUuyOmlKawT2B8UTYM#build-modification-issues).

### Which objects are included

Build Modifications include only objects in the packages covered by the Initial Build Map, plus objects in customer packages (names starting with `Z` or `Y`). Deleted objects are not limited to these packages. The Initial Build Map packages come from the production usage data of the pipeline's PRD system, so that data must exist (see [Troubleshooting](broken://pages/DTAUuyOmlKawT2B8UTYM#build-modification-issues) if a run reports it missing).

### How many transports a run collects

A run collects at most `[buildmods].maxtransportsperquery` transports (default `100`). Any remaining transports are picked up by the next runs. See [Configuration settings](broken://pages/DZM4uWEu5r51kMDWCmDB#buildmods).

### Build names in SeaLights

Each Build Modification is named `<Transport name>|<Import datetime>`, where the datetime is the transport's import time in UTC, for example `DEVK900123|2026-03-15T14:30:00Z`.

To see the builds, open the **Build history** window for your app on the Coverage Dashboard.

<figure><img src="https://1120332842-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMsXHfFNCMXIaXf5BTCm6%2Fuploads%2FdhLK1LdQrJNlSAkBq2WU%2Fimage.png?alt=media&amp;token=0bb484d4-8aec-45e2-9335-b288492a22f5" alt=""><figcaption></figcaption></figure>

The **Code Changes** tab of the Coverage Report lists the changes introduced by Build Modifications.

### Watcher Exit Codes

If the watcher ends with a non-zero exit code in Windows Task Scheduler, use this table:

| Exit code | Meaning                                                                                             |
| --------- | --------------------------------------------------------------------------------------------------- |
| `0`       | Success.                                                                                            |
| `1`       | General failure. Check the watcher log.                                                             |
| `10`      | Another watcher for the same action is already running.                                             |
| `11`      | Conflict. The Initial Build Map and Build Mods cannot overlap for a pipeline.                       |
| `12`      | Server unreachable. Run `slabapcli server start` and check `slabapcli server status`.               |
| `13`      | Configuration error. Check `config.toml` and the SeaLights token.                                   |
| `14`      | The task ended in an error. Open the task logs for the run.                                         |
| `15`      | Upload to SeaLights failed. Check the token (`slabapcli sealights test`) and your network or proxy. |
| `16`      | A prerequisite has not completed, for example the Initial Build Map.                                |
| `17`      | Another operation holds the lock. Retry when it finishes.                                           |
| `18`      | Task timeout. A single server task ran longer than 1000 hours.                                      |
| `19`      | The server returned a response the watcher could not read.                                          |

For other failures, see [Troubleshooting](broken://pages/DTAUuyOmlKawT2B8UTYM#build-modification-issues).

## Stop monitoring a Pipeline for Build Modifications <a href="#toc201668102" id="toc201668102"></a>

## `slabapcli buildmods stop`

Stops monitoring by removing the pipeline's scheduled task (`\SeaLights\BUILD_MODS_<pipeline>`). The command reports success even if no task was scheduled for the pipeline.

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Syntax" overflow="wrap" %}

```batch
slabapcli.exe buildmods stop --pipeline <pipeline-name>
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Syntax" overflow="wrap" %}

```powershell
.\slabapcli.exe buildmods stop --pipeline <pipeline-name>
```

{% endcode %}
{% endtab %}
{% endtabs %}

| Parameter          | Required | Description                                      |
| ------------------ | -------- | ------------------------------------------------ |
| `-p`, `--pipeline` | Yes      | The pipeline name (as shown in `pipeline list`). |

### Example

{% tabs %}
{% tab title="Command Prompt" %}
{% code title="Command" overflow="wrap" %}

```batch
slabapcli.exe buildmods stop --pipeline "ALM_Demo-S21"
```

{% endcode %}
{% endtab %}

{% tab title="PowerShell" %}
{% code title="Command" overflow="wrap" %}

```powershell
.\slabapcli.exe buildmods stop --pipeline 'ALM_Demo-S21'
```

{% endcode %}
{% endtab %}
{% endtabs %}

{% code title="Expected output (PowerShell)" overflow="wrap" lineNumbers="true" %}

```log
.\slabapcli.exe buildmods stop --pipeline 'ALM_Demo-S21'
[2025-06-18 14:45:19.637+01:00] [info] Detected Windows version: Windows 11
[2025-06-18 14:45:19.638+01:00] [info] Config pathname: C:\ProgramData\Tricentis\SeaLights\ABAP Agent\config\config.toml
[2025-06-18 14:45:19.652+01:00] [info] Stopped buildmods run
```

{% endcode %}

If a run is in progress, the command waits up to 10 seconds for it to finish and warns you if it is still running.
