# IB Operation Errors

LLMS index: [llms.txt](/llms.txt)

---

<div id="pslens-context-panel" class="card border-info mb-4 d-none">
  <div class="card-header bg-light text-info py-2 fw-bold d-flex align-items-center border-bottom border-info-subtle">
    <i class="bi bi-info-circle-fill me-2"></i>
    <span>Tailored Operational Context</span>
  </div>
  <div class="card-body p-0">
    <ul class="list-group list-group-flush">
      <li id="row-db" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Target Database:</strong>
        <span id="ctx-db" class="badge bg-secondary font-monospace">&mdash;</span>
      </li>
      <li id="row-type" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Context Type:</strong>
        <span id="ctx-type" class="badge bg-light text-dark border font-monospace text-uppercase">&mdash;</span>
      </li>
      <li id="row-severity" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Alert Severity:</strong>
        <span id="ctx-severity" class="badge">&mdash;</span>
      </li>
      <li id="row-time" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Triggered Time:</strong>
        <span id="ctx-time" class="text-muted small">&mdash;</span>
      </li>
      <li id="row-details" class="list-group-item py-2 d-none">
        <strong id="label-details" class="d-block mb-1">Firing Context:</strong>
        <code id="ctx-details" class="d-block p-2 bg-light border rounded small" style="white-space: pre-wrap; word-break: break-all;">&mdash;</code>
      </li>
    </ul>
  </div>
</div>

<script>
  (function() {
    const params = new URLSearchParams(window.location.search);
    const metadata = params.get('metadata');
    if (!metadata) return;

    try {
      
      const base64 = metadata.replace(/-/g, '+').replace(/_/g, '/');
      const jsonStr = decodeURIComponent(escape(window.atob(base64)));
      const data = JSON.parse(jsonStr);

      if (data) {
        let hasData = false;

        if (data.db) {
          document.getElementById('ctx-db').textContent = data.db;
          document.getElementById('row-db').classList.remove('d-none');
          hasData = true;
        }

        if (data.type) {
          document.getElementById('ctx-type').textContent = data.type;
          document.getElementById('row-type').classList.remove('d-none');
          hasData = true;
        }

        if (data.severity) {
          const severityBadge = document.getElementById('ctx-severity');
          const severity = data.severity.toLowerCase();
          severityBadge.textContent = severity.toUpperCase();
          if (severity === 'critical') {
            severityBadge.className = 'badge bg-danger';
          } else if (severity === 'warning') {
            severityBadge.className = 'badge bg-warning text-dark';
          } else {
            severityBadge.className = 'badge bg-info';
          }
          document.getElementById('row-severity').classList.remove('d-none');
          hasData = true;
        }

        if (data.t) {
          const date = new Date(data.t * 1000);
          document.getElementById('ctx-time').textContent = date.toLocaleString();
          document.getElementById('row-time').classList.remove('d-none');
          hasData = true;
        }

        if (data.details) {
          document.getElementById('ctx-details').textContent = data.details;

          
          const labelDetails = document.getElementById('label-details');
          if (data.type === 'object') {
            labelDetails.textContent = 'Object Metadata Details:';
          } else if (data.type === 'report') {
            labelDetails.textContent = 'Report Description:';
          } else {
            labelDetails.textContent = 'Firing Context:';
          }

          document.getElementById('row-details').classList.remove('d-none');
          hasData = true;
        }

        if (hasData) {
          document.getElementById('pslens-context-panel').classList.remove('d-none');
        }
      }
    } catch (e) {
      console.error('Failed to parse operational context metadata:', e);
    }
  })();
</script>


## IB Operation Errors Alert

**Alert ID:** `ib_operation_errors`
**Category:** Integration Broker
**Default lookback:** 24 hours

### What This Alert Detects

This alert finds **asynchronous Integration Broker operation instances** that are in **Error** or **Timeout** status within a configurable lookback window. These are messages that attempted to process but did not complete successfully.

An IB operation instance represents a single execution of a Service Operation through the Integration Broker. When an instance errors, the message did not reach its destination. The original publish/subscribe data is preserved in the IB tables and can usually be resubmitted from the Service Operations Monitor.

### Severity Logic

| Status  | Severity |
| ------- | -------- |
| Error   | Critical |
| Timeout | Warning  |

**Error** status means the processing actively failed. **Timeout** means it ran out of time, which may be a transient issue but still warrants investigation.

### Alert Details

Each alert item includes:

- Operation instance ID
- Service operation name
- Status (Error or Timeout)
- The originating node
- When the instance was created
- A link to the IB Monitor detail page

### Configuration

```yaml
alerts:
  checks:
    ib_operation_errors:
      enabled: true
      lookbackHours: 24          # How far back to look for errors
      excludeOperations:         # Operation names to skip
        - SOME_NOISY_OPERATION
```

|       Setting       | Default |                        Description                         |
| ------------------- | ------- | ---------------------------------------------------------- |
| `lookbackHours`     | `24`    | Number of hours back to search for error/timeout instances |
| `excludeOperations` | `[]`    | List of IB operation names to exclude from this check      |

### How to Respond

1. Click the alert link to go to the IB Monitor entry for the failed operation
2. Review the error details. The IB Monitor shows the error message or exception
3. Check whether this is a configuration issue (wrong endpoint, auth failure) or a data issue
4. If the message needs to be reprocessed, you can do so from PeopleSoft's Service Operations Monitor
5. If this is a recurring operation, investigate the root cause before errors pile up

### Relationship to Other IB Alerts

This alert finds operations that have **already ended in error**. For operations that are **stuck in progress**, see [IB Operations Stalled](/docs/alerts/integration-broker/ib-operation-stalled/).

For similar alerts on publication and subscription contracts, see:

- [IB Publication Contract Errors](/docs/alerts/integration-broker/ib-pub-contract-errors/)
- [IB Subscription Contract Errors](/docs/alerts/integration-broker/ib-sub-contract-errors/)
