Skip to main content

Notifications

Configure notifications for important lifecycle events in your account and application environments.

Overview

Quave ONE can send notifications for various deployment, scaling, restart, and automation lifecycle events. You can configure which events trigger notifications and choose between email, Slack, and webhook notifications.

Configuring Notifications

Access notification settings from the Notifications tab in your account settings.

Available Channels

  • Email: Receive notifications via email
  • Slack: Send notifications to a Slack channel (requires webhook URL configuration)
  • Webhook: Send HTTP POST notifications to a custom URL with structured JSON payloads

Notification Settings Types

The following events can trigger notifications. Events marked as Enabled by Default are automatically enabled when notifications for that scope are created or when an enabled account-level setting is missing a default activity. Some events are account-only and are not available in environment-level notification overrides.

Build Events

EventScopeDescriptionEnabled by Default
BuildingAccount and environmentDocker image is being builtNo
Waiting for imageAccount and environmentWaiting for Docker image to be availableNo
Build failedAccount and environmentBuild process failed (compilation, Dockerfile errors)Yes
Image in waiting failed to buildAccount and environmentDocker image build failedYes
BuiltAccount and environmentBuild completed, ready to deployNo
Image in waiting is readyAccount and environmentImage is ready for deploymentNo
Job image readyAccount and environmentJob image is ready to runNo

Deploy Events

EventScopeDescriptionEnabled by Default
DeployingAccount and environmentContainers are being deployedNo
Deploy failed to completeAccount and environmentDeployment timed out or failed health checksYes
Deploy failed to startAccount and environmentContainers failed to startYes
DeployedAccount and environmentCode deployment completed successfullyNo

Scaling Events

EventScopeDescriptionEnabled by Default
ScalingAccount and environmentContainer count is being adjustedNo
ScaledAccount and environmentScaling operation completed successfully (containers adjusted)No

Lifecycle Events

EventScopeDescriptionEnabled by Default
Build canceledAccount and environmentBuild was manually canceledYes
Canceled due to new deployAccount and environmentCanceled because a new deployment was triggeredNo
StoppingAccount and environmentContainers are being stoppedNo
StoppedAccount and environmentEnvironment stopped gracefully after successful operationYes
RestartsAccount and environmentNotification when containers restart unexpectedly (first restart, then at most once every 3 hours)Yes

Automation Events

EventScopeDescriptionEnabled by Default
Automation failuresAccount onlyNotification when an account-level automation run fails or times outYes
Agent profile updatesAccount onlyNotification when an enabled agent-profile automation needs its latest template appliedYes

Container Restart Notifications

Quave ONE monitors your containers for unexpected restarts and notifies you when they occur. This helps you quickly identify and address issues like crashes, out-of-memory errors, or application bugs.

When You Get Notified

To prevent notification fatigue, restart notifications follow a rate-limited schedule:

  • First restart: You are notified immediately when a container first restarts
  • Subsequent restarts: You will receive at most one notification every 3 hours if restarts continue

This means you will receive a maximum of approximately 8 restart notifications per day per container, even if the container is in a crash loop.

What the Notification Contains

Each restart notification includes:

  • Container name: Which container or replica restarted
  • Restart count: Total number of restarts recorded
  • Exit code: The error code that caused the restart
  • Error message: Details about why the container terminated (when available)
  • Version: The application version that was running

Common Exit Codes

Exit CodeMeaningTypical Cause
137OOMKilledContainer exceeded memory limit
1ErrorApplication crashed or threw an unhandled exception
143SIGTERMContainer received termination signal

For a complete list of error codes, see our Troubleshooting guide.

Disabling Restart Notifications

If you prefer not to receive restart notifications, you can disable them:

  1. Go to Account then Notifications or App Env then Notifications
  2. Find Restarts on the list
  3. Toggle off Email, Slack, and/or Webhook notifications as desired

Automation Failure Notifications

Automation failures are account-level lifecycle notifications. They are not alert alarms and they do not use automation contact points. When an automation run fails or times out, Quave ONE can notify the account through the same Email, Slack, and Webhook channels configured on the account Notifications page.

Automation failure notifications are enabled by default for account-level notifications. They are not shown in environment-level notification settings because automations are attached to the account, not to a specific app environment.

Best Practices

  1. Enable failure notifications - At minimum, enable notifications for build and deploy failures to catch issues early
  2. Configure Slack for team visibility - Use Slack channels to keep your entire team informed of deployment events
  3. Use webhooks for custom integrations - Connect notifications to CI/CD pipelines, PagerDuty, or internal tools via webhooks
  4. Customize per environment - Consider different notification settings for production vs staging environments
  5. Use dedicated channels - Create dedicated Slack channels for different apps or environments to reduce noise
  6. Keep restart notifications enabled - Container restarts often indicate issues that need attention, even if the container auto-recovers

Slack Integration

To configure Slack notifications:

  1. Create a Slack webhook URL in your Slack workspace
  2. Go to the Notifications tab in your account settings
  3. Enable Slack notifications for desired events
  4. Enter the webhook URL for the Slack channel
tip

You can configure different Slack channels for different events or environments to better organize your notifications.

Webhook Integration

Webhook notifications allow you to receive structured JSON payloads via HTTP POST whenever events occur in your application environments. Use them to integrate Quave ONE with CI/CD pipelines, incident management tools, custom dashboards, or any system that can accept HTTP requests.

  • Method: HTTP POST
  • Content-Type: application/json
  • Delivery: Fire-and-forget (no retries on failure)

Configuring Webhooks

  1. Go to Account then Notifications (or App Env then Notifications for environment-level settings)
  2. Enable the Webhook toggle
  3. Enter your Webhook URL (the HTTPS endpoint that will receive the POST requests)
  4. In the activities table, check the Webhook column for each event you want to receive
  5. Click Save changes
tip

You can use a service like webhook.site to test your webhook configuration before connecting it to your production systems.

Webhook Event Types

Quave ONE sends these webhook events:

  • environment_status_change -- Sent when the status of an application environment changes (e.g., build started, deploy succeeded, deploy failed).
  • container_restart -- Sent when a container restarts unexpectedly. Restart notifications follow the same rate-limited schedule described above (first restart immediately, then at most once every 3 hours).
  • automation_failure -- Sent when an account-level automation run fails or times out.

Webhook Field Reference

Common Fields

FieldTypeDescription
eventstringEvent type identifier: environment_status_change, container_restart, or automation_failure
timestampstringISO 8601 timestamp of when the notification was sent
account.idstringAccount ID
account.namestringAccount name
app.idstringApp ID, present for environment-level events
app.namestringApp name, present for environment-level events
appEnv.idstringEnvironment ID, present for environment-level events
appEnv.namestringEnvironment name, present for environment-level events
linkstringDirect URL to the environment or automation run in Quave ONE

Fields for environment_status_change

FieldTypeDescriptionRequired
statusstringStatus enum value (e.g., DEPLOYED, BUILDING_FAIL, DEPLOY_FAILED_START)Yes
statusLabelstringHuman-readable status label (e.g., "Deployed", "Build failed")Yes
messagestringNotification message textYes
hoststringPrimary hostname of the environmentOnly when applicable
imagestringDocker image nameOnly when applicable

Fields for container_restart

FieldTypeDescriptionRequired
container.namestringContainer/pod nameYes
container.restartCountnumberTotal number of restarts recordedYes
versionstringApplication version string (e.g., v8.3)Yes
exitCodenumberProcess exit code that caused the restartYes
exitCodeLabelstringHuman-readable exit code meaning (e.g., "OOMKilled")Only when available
errorMessagestringError details from the containerOnly when available

Fields for automation_failure

FieldTypeDescriptionRequired
automation.idstringAutomation IDYes
automation.namestringAutomation nameYes
run.idstringAutomation run IDYes
run.statusstringRun status, usually failedYes
run.errorMessagestringFailure reason captured by Quave ONEOnly when available
run.triggerSourcestringHow the run was started, such as cron or manualOnly when available
run.autoDisabledbooleanWhether repeated failures disabled the automationYes

Webhook Example Payloads

Environment Status Change

{
"event": "environment_status_change",
"timestamp": "2026-02-16T12:00:00.000Z",
"account": {
"id": "abc123",
"name": "My Company"
},
"app": {
"id": "def456",
"name": "my-app"
},
"appEnv": {
"id": "ghi789",
"name": "production"
},
"status": "DEPLOYED",
"statusLabel": "Deployed",
"message": "Environment Deployed",
"host": "app.example.com",
"link": "https://cloud.quave.dev/abc123/def456/ghi789"
}

Container Restart

{
"event": "container_restart",
"timestamp": "2026-02-16T12:00:00.000Z",
"account": {
"id": "abc123",
"name": "My Company"
},
"app": {
"id": "def456",
"name": "my-app"
},
"appEnv": {
"id": "ghi789",
"name": "production"
},
"container": {
"name": "my-app-web-5f8a9b",
"restartCount": 5
},
"version": "v8.3",
"exitCode": 137,
"exitCodeLabel": "OOMKilled",
"link": "https://cloud.quave.dev/abc123/def456/ghi789?tab=CONTAINERS"
}

Automation Failure

{
"event": "automation_failure",
"timestamp": "2026-02-16T15:00:00.000Z",
"account": {
"id": "abc123",
"name": "My Company"
},
"activity": "AUTOMATION_FAILED",
"title": "Automation failed",
"automation": {
"id": "auto123",
"name": "Production health check"
},
"run": {
"id": "run123",
"status": "failed",
"errorMessage": "MCP key no longer available or disabled",
"triggerSource": "cron",
"autoDisabled": false
},
"link": "https://cloud.quave.dev/account/abc123/automations/runs?automationId=auto123&runId=run123"
}

Deploy Failed (without optional fields)

{
"event": "environment_status_change",
"timestamp": "2026-02-16T14:30:00.000Z",
"account": {
"id": "abc123",
"name": "My Company"
},
"app": {
"id": "def456",
"name": "my-app"
},
"appEnv": {
"id": "ghi789",
"name": "staging"
},
"status": "BUILDING_FAIL",
"statusLabel": "Build failed",
"message": "Environment Build failed",
"link": "https://cloud.quave.dev/abc123/def456/ghi789"
}