View Runtime Logs
Runtime logs record backend activity in your app. When an Actionflow fails, data changes unexpectedly, or an API call returns an error, start with the relevant log category and then narrow the results by time, level, field, or traceId.
Open runtime logs
You can open runtime logs from either of these locations:
- Click Runtime Logs on the project details page.
- Click the log icon in the upper-right corner of the editor.

Log retention depends on the project plan:
| Plan | Retention |
|---|---|
| Free | 1 day |
| Basic | 7 days |
| Pro | 30 days |
Before troubleshooting, make sure the incident occurred within the retention period.
Choose a log category
Select a category based on where the issue occurred. This removes unrelated records before you begin searching.
| Category | What it records | Use it to investigate |
|---|---|---|
| Actionflow | Actionflow and node execution | Node inputs, outputs, execution order, and errors |
| Database operations | Inserts, updates, and deletes, including their source and details | Why a record was created, changed, or deleted |
| AI | AI Agent activity, including model and message information | AI Agent calls and conversations |
| API | API request headers, bodies, and related details | Third-party API calls |
| Trigger | Trigger time, type, and related information | Whether an Actionflow started from the expected trigger |
| Gateway | Frontend requests sent to the backend and requests received through webhooks | Whether a request reached the backend and what it contained |
| Deployment and release | Records related to syncing changes and publishing | Whether backend configuration was updated successfully |
| GraphQL | GraphQL requests received by the backend | Data query and mutation requests |
Actionflow logs
Each Actionflow node typically generates one log when it starts and another when it finishes. Calling context.log() in a Run code node also creates a log entry.
View Actionflow log fields and node types
Node logs include these common fields:
| Field | Description |
|---|---|
traceId | Connects entries generated by the same request |
nodeType | Node type |
nodeName | Node name |
version | Actionflow version |
input | Node input and data available to the node |
output | Node execution result |
startAt | Node start time |
endAt | Node end time |
Common nodes use the following type values in logs:
| Node | nodeType |
|---|---|
| Input | FLOW_START |
| Get data | QUERY_RECORD |
| Update data | UPDATE_RECORD |
| Add data | INSERT_RECORD |
| Delete data | DELETE_RECORD |
| Run code | CUSTOM_CODE |
| Assign role | ADD_ROLE_TO_ACCOUNT |
| Remove role | REMOVE_ROLE_FROM_ACCOUNT |
| Assign variable | UPDATE_GLOBAL_VARIABLES |
| Branch start | BRANCH_SEPARATION |
| Branch end | BRANCH_MERGE |
Gateway logs
- Coverage: Frontend database requests, APIs, AI, and most other requests that pass through the gateway.
- Visible data: Gateway logs show outgoing requests but not their results.
- Next step: To inspect the execution result, switch to the relevant category and query the same
traceId.
Filter and query logs
- Time and level: Set the time range for the incident and filter by log level.
- Bar chart: Review log volume over time and select a segment to update the time range.
- Log details: Open an entry and select a field value to add it to the query.
- Query statement: Narrow the results by keyword or field.

Common query patterns include:
| Goal | Example query |
|---|---|
| Find logs containing a keyword | account |
| Match an exact field value | requestMethod: POST |
Use * as a text wildcard | traceId: 20241024* |
| Match a numeric range | responseSize: [5000 to 10000] |
| Combine conditions | account and status: 200 and not requestMethod: GET |
| Query a nested field | requestBody.query: mutation* |
Match a complete traceId | traceId: "c2ecac0b-cce8-463b-b5d2-7ee7aa8f703020241128114815" |
Use and, or, and not to combine conditions. Available fields and values depend on the fields shown in each log entry.
Trace a request
Use traceId to connect log entries generated by the same request.
Reproduce the issue
Note the time and entry point, then reproduce the issue once if possible. This avoids creating many similar log entries.
Find the first related entry
Choose the category closest to the issue, set a short time range, and filter by level, Actionflow name, endpoint, or another known field.
Copy the trace ID
Open the log details and copy the value of traceId.
Find related entries
Run a traceId: "complete value" query. To inspect another category, keep the query and switch categories.
Review the execution in order
Compare the inputs, outputs, status, and errors in chronological order to identify where the request diverged from the expected result.
Logs can contain request parameters, node inputs, API headers, and other business data. Remove secrets, tokens, and personal data before sharing a screenshot or complete log entry.
To analyze logs together with browser requests and page state, see Troubleshoot an App.