Accessing Logs in Studio
Open the Logs tab in the left panel of your workflow canvas. You’ll see a list of recent runs sorted by time, with status, duration, and trigger information visible at a glance. Click any run entry to open its full execution trace. The trace expands into a block-by-block view that shows exactly what happened at each step.Logs are scoped to the workflow you have open. To view logs across multiple workflows, use the global Logs panel in the Studio sidebar.
What Each Log Entry Shows
Every run entry in the log list includes the following fields:| Field | Description |
|---|---|
| Run ID | A unique identifier for the run. Use this when reporting issues or correlating logs with API responses. |
| Timestamp | When the run started, in your local timezone. |
| Trigger | What initiated the run — a webhook, a schedule, a Console test, or an API/SDK call. |
| Status | completed, failed, or running. |
| Duration | Total time from trigger to final output, in milliseconds. |
| Environment | Which environment the run executed against — development, staging, or production. |
- Input context — the full payload passed to the workflow at trigger time
- Output context — the structured data returned by the workflow’s final block
- Block-level trace — the input, config, and output of every block that executed, in order
- Token usage and cost signals — token counts and estimated cost for each LLM block
- Error messages — for failed runs, the specific block that failed and the error it returned
Filtering and Searching Logs
Use filters to narrow the log list to the runs you care about. Scout supports filtering by:- Status — filter to
failedwhen actively debugging; filter tocompletedwhen reviewing performance - Date range — set a window around an incident to find the affected runs
- Environment — isolate production runs from development or staging test runs
- Trigger type — filter to webhook runs, scheduled runs, or manual Console runs independently
Reading Execution Traces
The block-by-block trace is the most powerful part of the log view. Each block entry in the trace shows:- The input values it received from the trigger payload or a prior block
- The configuration it ran with (prompt, URL, condition expression, etc.)
- The output it produced
- The duration of that specific block in milliseconds
- An error if the block failed, including any error message from an external API
Common Failure Patterns and How to Fix Them
Input Error
What it looks like: The first block in your chain — or an early validation block — fails with a message likemissing required field: ticket_id or expected string, got null.
Why it happens: The data coming into the workflow was missing a required field, had the wrong type, or was malformed. This is usually a mismatch between what the caller sent and what your Input block expects.
How to fix it:
- Open the failed run and check the Input context. Identify which field is missing or wrong.
- Trace back to the caller — the webhook payload, the API request, or the SDK call — and confirm it’s sending the correct fields.
- If the issue is a new edge case (a field that’s sometimes absent), add a Condition or Stop If block to handle it gracefully before your downstream blocks run.
Logic Error
What it looks like: The workflow completes — all blocks run — but the output is wrong. Or a Condition block routes to the wrong branch unexpectedly. Why it happens: The block received valid data but produced incorrect output. Common causes include a flawed condition expression, a misconfigured prompt, or a template that references the wrong block ID. How to fix it:- Open the failed run and expand each block in the trace. Find where the output first diverges from what you expected.
- Copy the input payload from the run and reproduce the issue in the Console. Paste the same payload and run the workflow in development.
- Fix the block config — correct the condition expression, adjust the prompt, or update the template reference — and rerun in Console to confirm.
External Dependency Error
What it looks like: An HTTP block, integration block, or Agent block fails with an error from an external service — a429 Too Many Requests, a 503 Service Unavailable, a timeout, or an authentication error.
Why it happens: A third-party API or integration returned an error or took too long to respond. This is outside Scout’s control but is visible and actionable in the logs.
How to fix it:
- Open the failed block in the trace and read the full error message, including the HTTP status code.
- For
429or503errors: wait for the dependency to recover, then rerun the workflow. Consider adding a Delay block before the failing step if rate limits are a recurring issue. - For
401or403errors: check that the API key or OAuth token configured for that block is valid and hasn’t expired. - For timeouts: check whether the external service is experiencing degraded performance, and consider increasing the block’s timeout setting.
Monitoring Performance Over Time
Beyond debugging individual failures, use logs to catch performance regressions before they become incidents.Watch duration trends
A block that normally completes in 200 ms jumping to 2 s is a signal worth investigating — even if runs are still succeeding.
Track failure signatures
Recurring failures in the same block type point to a systemic issue — a flaky integration, an LLM prompt that breaks on certain inputs, or a CRM field that’s occasionally null.
Pair with History
Cross-reference failure spikes in Logs with revision promotions in History. If failures started after a specific deploy, the revision diff is your starting point.
Verify after deploys
After every promotion to production, monitor Logs for five to ten minutes. Confirm that the first production runs succeed before considering the deploy stable.
Next Steps
Environments
Roll back to a previous revision when logs show a promotion introduced failures.
Running Workflows
Use the Console to reproduce failures from logs with controlled inputs.
Creating Workflows
Structure your workflow to make failures visible and easy to trace in logs.
Blocks
Understand block types and their failure modes to debug traces faster.