App error reporting and observability
Monitor Retool apps by connecting with Datadog or Sentry.
Retool supports out-of-the-box error monitoring and reporting of app errors on both web and mobile with Datadog or Sentry. Once configured, Retool reports any production app errors—including a callstack and descriptive tags—to either provider. For custom error reporting and integrations with other observability providers, you can create a workflow using Retool Events.
Errors encountered while editing an app are not reported.
1. Configure observability provider
- Datadog
- Sentry
To configure Datadog:
- Create a Datadog pipeline to consume logs. Retool app errors will stream as error logs from
service:retool-error-monitor
. - Create a Datadog API key to use in the next step. Note your organization's Datadog Site.
To configure Sentry:
- Create a Sentry project for Retool app errors.
- Navigate to the Client Keys (DSN) section of your Sentry project's settings. Copy the DSN key to use in the next step.
2. Connect providers to Retool
Next, configure your Retool organization to connect to your observability provider. You can configure the connection by either:
- Navigating to Settings > Observability.
- Using the Retool API to programmatically configure observability provider connections.
- Datadog
- Sentry
Configure the API key setting with the Datadog API key you created in the previous step. Make sure you specify the correct Datadog Site
Configure the DSN key setting with the Sentry DSN key you created in the previous step.
Error types
Retool reports the following error types and includes a callstack.
Description | Type | Additional trace contents |
---|---|---|
Resource not found | Query | Missing resource name. |
Error processing query | Query | Query input values, context lines. |
Query with failure response | Query | Query input values, API request. |
JS Code error | Query | Context lines, additional scope values. |
Transformer error | Transformer | Context lines. |
Component error | Component | Context lines. |
Page load error | Server | Module UUID. |
Error tags
Tags can be used to filter, categorize or route errors to different owners, using the following format tag:value
.
Here is the updated table with the specified changes:
Error detail | Datadog tag | Sentry tag | Example |
---|---|---|---|
Name | app_name | app_name | My App Name |
Path | app_path | app_path | Jenny/My App Name |
Release tag | app_release | app_release | 0.1.0 |
App ID | app_uuid | app_uuid | a031dff4-1d38-11ef-8787-b7ac527da581 |
Browser | browser | browser | chrome |
Browser version | browser_version | browser_version | 124.0.0 |
Embed app Imported (if is_embedded is true ) | embed_uuid | embed_uuid | 612dc16d-9230-4133-bf22-cfcac703a036 |
Environment | env | environment | production (only) |
Whether or not app was loaded using an embed URL | is_embedded | is_embedded | false |
Log level (always error ) | level | level | error |
Module ID (if error originated from module) | module_uuid | module_uuid | 68ec78b2-f20b-11ee-bb14-13ef186a41a6 |
Organization ID | org_sid | org_sid | org_9848411250f241939b5092af3714b4c5 |
Operating system | os | os | Mac OS |
Imported query ID (if error originated from a query imported from the Query Library) | playground_query_uuid | playground_query_uuid | 9ba338f8-ef18-4c83-8606-2bf775168ad0 |
Plugin ID for the widget, query, or function that triggered the error | plugin_id | plugin_id | button1 |
Retool version | release | release | 3.58.0 |
Resource ID (if error originated from a query) | resource_id | resource_id | 526a6aa4-c237-4711-bc12-4a0c7a5fa276 or resource display name |
Origin (either runtime or server ) | source | source | runtime |
HTTP status code (if error originated from a network query) | status_code | status_code | 404 |
Full URL used to access the app including any string and hash parameters | url | url | https://example.retool.com/app/my-app?_releaseVersion=... |
Email of the user who experienced the error | user | user.email | jenny@retool.com |
View mode (either presentation for apps in view mode or public for embedded apps). | view_mode | view_mode | presentation |
Filtering and routing
You can configure observability providers to filter and route errors reported for Retool apps.
- Datadog
- Sentry
Datadog errors are sent as logs. You can filter for all Retool app errors by setting service:retool-error-monitor
, or any additional tags. Refer to Datadog's error tracking documentation to create rules for Retool app errors using service:retool-error-monitor
.
Sentry can route errors to designated app owners. Refer to Sentry's ownership rules documentation for instructions.