Automatic alerts
The platform watches every execution and raises an alert without any instrumentation on your side:| Alert type | Triggered when | Severity | Typical latency |
|---|---|---|---|
| Execution failure | An execution ends with an uncaught error (a throw that escapes your handler) | warning | seconds |
| Execution timeout | An execution exceeds the runtime cap, or gets stuck in RUNNING beyond the limit — including when the runtime itself crashed mid-flight | critical | under a minute |
| Connector failure | A connector call fails, even if your code catches the error and the execution succeeds | warning | seconds |
Detection is two-layered: most alerts fire from the trace pipeline within seconds, and an independent watchdog reads the execution store directly — so a worker that dies without reporting anything still produces an alert. Both staging and production are monitored; every notification carries an environment badge.
Grouping and deduplication
Alerts are designed to inform, not to flood:- The first failure of an agent notifies immediately.
- Subsequent failures of the same agent and type within a 15-minute window increment the same notification (“12 failures in the last 15 min”) instead of creating new ones.
- Each execution is counted once, even when detected by more than one path.
- Within a group, severity only escalates (a
criticalevent upgrades awarninggroup, never the opposite).
Custom alerts from the SDK
Available from@runflow-ai/sdk v1.4.1. Call sendNotification() anywhere inside an execution — no IDs required, everything is resolved from the execution context:
Options
| Option | Type | Default | Description |
|---|---|---|---|
severity | 'warning' | 'critical' | 'warning' | Controls the notification severity; critical escalates an open alert group |
body | string | — | Extra detail shown in the notification body |
dedupeKey | string | — | Distinct alerts within one execution deduplicate by this key (defaults to the title) |
Behavior
- Fire-and-forget —
sendNotification()never throws and never blocks your agent’s execution. - The alert title you pass becomes the notification title in the portal, grouped per agent like automatic alerts.
- Custom alerts appear with the type Alert in the bell and history filters.
sendNotification() is designed to run inside the Runflow runtime. Outside of it (a plain local script with no execution context), the alert is discarded server-side since there is no execution to attach it to.Where notifications surface
Notification bell
Real-time badge in the top bar. Click an alert to jump straight to the affected agent.
History
Full paginated history with filters: environment, type, severity and unread-only.
Agent health
The dashboard ranks all agents by health (error rate, timeouts, connector failures), and each agent’s overview shows its health badge plus the most common errors, grouped and normalized.
Multi-tenant watchlist
Users with access to multiple tenants can pick which ones to watch — the bell aggregates alerts across all of them, tagged per tenant.
Health metrics
The health views are computed from real execution data over a 24h/7d window:- Executions and failures per agent (combining the trace layer with the execution store of record)
- Error rate with health classification: healthy (<5%), degraded (5–20%), critical (≥20%)
- Timeouts and stuck executions
- Connector failures per agent
- Most common errors, grouped by normalized message (IDs and numbers collapsed so identical failures group together)