Notifications
Configure notifications to be alerted when important events occur in your application environments.
Overview
Quave Cloud can send notifications for various deployment and scaling 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 for new environments.
Build Events
| Event | Description | Enabled by Default |
|---|---|---|
| Building | Docker image is being built | No |
| Waiting for image | Waiting for Docker image to be available | No |
| Build failed | Build process failed (compilation, Dockerfile errors) | Yes |
| Image in waiting failed to build | Docker image build failed | Yes |
| Built | Build completed, ready to deploy | No |
| Image in waiting is ready | Image is ready for deployment | No |
Deploy Events
| Event | Description | Enabled by Default |
|---|---|---|
| Deploying | Containers are being deployed | No |
| Deploy failed to complete | Deployment timed out or failed health checks | Yes |
| Deploy failed to start | Containers failed to start | Yes |
| Deployed | Code deployment completed successfully | No |
Scaling Events
| Event | Description | Enabled by Default |
|---|---|---|
| Scaling | Container count is being adjusted | No |
| Scaled | Scaling operation completed successfully (containers adjusted) | No |
Lifecycle Events
| Event | Description | Enabled by Default |
|---|---|---|
| Build canceled | Build was manually canceled | Yes |
| Canceled due to new deploy | Canceled because a new deployment was triggered | No |
| Stopping | Containers are being stopped | No |
| Stopped | Environment stopped gracefully after successful operation | Yes |
| Restarts | Notification when containers restart unexpectedly (first restart, then at most once every 3 hours) | Yes |
Container Restart Notifications
Quave Cloud 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 Code | Meaning | Typical Cause |
|---|---|---|
| 137 | OOMKilled | Container exceeded memory limit |
| 1 | Error | Application crashed or threw an unhandled exception |
| 143 | SIGTERM | Container 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:
- Go to Account then Notifications or App Env then Notifications
- Find Restarts on the list
- Toggle off Email, Slack, and/or Webhook notifications as desired
Best Practices
- Enable failure notifications - At minimum, enable notifications for build and deploy failures to catch issues early
- Configure Slack for team visibility - Use Slack channels to keep your entire team informed of deployment events
- Use webhooks for custom integrations - Connect notifications to CI/CD pipelines, PagerDuty, or internal tools via webhooks
- Customize per environment - Consider different notification settings for production vs staging environments
- Use dedicated channels - Create dedicated Slack channels for different apps or environments to reduce noise
- Keep restart notifications enabled - Container restarts often indicate issues that need attention, even if the container auto-recovers
Slack Integration
To configure Slack notifications:
- Create a Slack webhook URL in your Slack workspace
- Go to the Notifications tab in your account settings
- Enable Slack notifications for desired events
- Enter the webhook URL for the Slack channel
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 Cloud 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
- Go to Account then Notifications (or App Env then Notifications for environment-level settings)
- Enable the Webhook toggle
- Enter your Webhook URL (the HTTPS endpoint that will receive the POST requests)
- In the activities table, check the Webhook column for each event you want to receive
- Click Save changes
You can use a service like webhook.site to test your webhook configuration before connecting it to your production systems.
Webhook Event Types
Quave Cloud sends two types of 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).
Webhook Field Reference
Common Fields (present in all events)
| Field | Type | Description |
|---|---|---|
event | string | Event type identifier: environment_status_change or container_restart |
timestamp | string | ISO 8601 timestamp of when the notification was sent |
account.id | string | Account ID |
account.name | string | Account name |
app.id | string | App ID |
app.name | string | App name |
appEnv.id | string | Environment ID |
appEnv.name | string | Environment name |
link | string | Direct URL to the environment in Quave Cloud |
Fields for environment_status_change
| Field | Type | Description | Required |
|---|---|---|---|
status | string | Status enum value (e.g., DEPLOYED, BUILDING_FAIL, DEPLOY_FAILED_START) | Yes |
statusLabel | string | Human-readable status label (e.g., "Deployed", "Build failed") | Yes |
message | string | Notification message text | Yes |
host | string | Primary hostname of the environment | Only when applicable |
image | string | Docker image name | Only when applicable |
Fields for container_restart
| Field | Type | Description | Required |
|---|---|---|---|
container.name | string | Container/pod name | Yes |
container.restartCount | number | Total number of restarts recorded | Yes |
version | string | Application version string (e.g., v8.3) | Yes |
exitCode | number | Process exit code that caused the restart | Yes |
exitCodeLabel | string | Human-readable exit code meaning (e.g., "OOMKilled") | Only when available |
errorMessage | string | Error details from the container | Only when available |
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"
}
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"
}