Trace detail
Open one trace to dissect the run: every span it produced, what each span cost, and the outcome and error it recorded. This is where you go after the list narrows you down to a single run worth understanding.
Trace detail is not a second page. /traces/[traceId] opens as a resizable, closable peek
overlay on top of the still-interactive list. A deep link to /traces/[traceId] lands directly
on that overlay.
What you see
The run opens on its Summary. Five tabs sit under the identity row, in this order: Summary, Spans, Context & cost, Evals and Comments. The Evals tab carries a red badge with the number of failed eval scores when there is at least one.
Identity
An identity row: the agent name (a link to its agent page), the trace ID, and — when the run reported it — the git revision as a short seven-character hash. On the right are the links to this run’s eval cases and Save as test case.
Git revision appears here on the detail; it is not a column on the trace list.
Back to where you came from
Links to a run from elsewhere in Morse carry where you came from, so you can go straight back. An
evidence link on an investigation, a Finding, an agent page, Quality, Verify, Efficiency or Cost
opens the run with a from parameter, and the identity row shows Back to {source} — for
example Back to Finding, Back to Investigations or Back to Agent. Closing the overlay
(✕ or Esc) also returns there, and J / K keep it while you step through runs.
Without a from, there is no back link on the run; close the overlay to return to the list. The
from value is only ever a path inside Morse — anything else is ignored.
A Finding’s See example runs link opens the Traces list filtered to that Finding’s runs; the list then shows Back to Finding above the results.
Run summary
The Summary tab leads with a Run summary panel. Its words are written by the API; the screen only lays them out.
- Outcome and status, on one line: Succeeded, Failed, Still running or No outcome recorded, then the run status (Completed, Failed, Timed out, Running). Only a run whose outcome was recorded as a success is shown in teal; a completed run with no outcome is not.
- A headline saying what the run did, for example “This run made 4 LLM calls, 11 spans and succeeded at a cost of $0.0123.” It states only what this one run supports. A run with no recorded outcome says so: “It has no recorded outcome yet.”
- Why you’re looking at it, when you arrived from a failure group: “This is 1 of 42 runs in the failure group …”.
- Four tiles, each with its value and the basis beside it:
- Outcome, with where the outcome came from (for example Reported by the SDK run, Confirmed by webhook, Success rule or Business record).
- Cost, with All spans priced or “{n} spans unpriced; cost is a floor”.
- Duration, measured from the start to the end of the run.
- Steps: the LLM calls and spans, with None failed or how many failed.
- Do this next: one recommendation with a title, a short explanation and an action hint — for example An external error explains this failure → “Check provider status, rate limits and retry policy for the failed step.”
- Open the failing step jumps to the Spans tab with the first failed span selected. When no step failed, See the spans opens the Spans tab. Explain this run opens Ask Morse’s explanation of this run’s structure.
Under the Run summary, Run details lists duration, cost, tokens, eval scores (for example “2 pass · 1 fail”, which opens the Evals tab), redactions and cost coverage, each only when there is data. Below it is the control to record or correct the run’s outcome.
Spans
The Spans tab is a master-detail. On the left, a waterfall/tree of the run’s spans; on the right, a detail panel for the selected span showing its input and output (LLM content, SQL statements, retriever results), timing, and span ID. Controls above the waterfall:
- A Tree / Flat toggle — shown only when the run spawned sub-agents.
- A Critical path toggle. With it on, a line reads “Critical path: {n} of {total} spans, marked in amber.” — or says why the run has none.
- A collapsed Graph (DAG) section beneath the waterfall.
When a span has no stored input or output, its panel says so instead of showing an empty value: No input captured or No output captured when your code sent nothing, or Payload not stored (over plan limit) when the span arrived after your plan’s monthly billable-span limit. A span over the limit also shows a Payload shed (over quota) band: its status, cost, tokens, duration and linkage are exact; only the payload detail is missing.
Replay one LLM span
On a selected llm span whose payload is still available, Replay opens a panel to re-run the recorded prompt against Anthropic or OpenAI with another model or an edited prompt. You supply your own provider key for that request only — Morse never stores it. The result is labelled a re-run of the recorded prompt, with fidelity flags for what could not be reproduced; it is not a regression score or a verdict. See Single-call replay.
Attribution
Under the spans, an Attribution panel shows what this run acted on and which version ran: its
record keys (as type: value chips), agent version, git revision and service version, the models,
prompt references and tool-description count it used, and a timeline of its outcome label — when
the label changed, what it changed to, its provenance and where it came from. The configuration
fingerprint hash is not shown. A field that was never sent reads Not captured and links to
Record keys and versions.
Context & cost
The Context & cost tab holds the run’s analytics. A panel is hidden when the run has no data for it, so what you see reflects what this run actually produced: SDK capability chips, the correlation panel, a cost-coverage card, an {n} unpriced badge for spans with no known rate (excluded from the total), an Infra (estimated, amortized) line kept out of the priced total, a Context X-Ray card, a context × outcome insight, a memory-ops panel, a cross-agent context-flow panel, orchestration stats, a collapsible Orchestration detail (role tree and tools used), Metadata, and Token Utilization.
Multi-agent structure in the orchestration detail is displayed using a fixed eight-role canonical ontology — Run, Agent, Step, LLM, Tool, Memory, Router, Guardrail — that framework-specific spans are classified into. The label you see is the canonical role, not the source framework’s own term for that node.
Evals
The Evals tab shows the run’s eval scores and, when any were extracted at ingest, its Operational Signals — structured signals taken from the LLM outputs.
Comments
The Comments tab shows end-user feedback (thumbs and comments your app sends — see End-user feedback) and the team’s comment thread. Write in Add a comment for your team…, then select Comment. Comments are plain text, up to 4,000 characters; HTTP and HTTPS links become clickable.
To @mention a teammate, select Mention, then choose their email from the organization member
list. This inserts an @handle based on the part of their email before @. Keep that handle in
the comment when you submit it: removing it also removes the mention. Typing an @handle alone
does not select a recipient.
Selected teammates receive an in-app notification in the notification bell. It shows who mentioned them and an excerpt of the comment; selecting its title opens the trace. The bell also offers Mark all read, and individual unread notifications have a Mark read action.
You can edit or delete your own comments; organization owners and admins can delete any comment. Adding, editing and deleting comments are recorded in the audit log. The traces list has a Comments column showing the comment count.
Delete trace
Owners and admins see a Delete trace section at the bottom of every tab. It deletes this trace with its spans, scores, comments and stored payloads after a confirmation, then returns you to where you came from. See Delete agents and traces.
Infra evidence
When your OpenTelemetry context propagation carries the trace through your own services, their database and HTTP spans and logs can be joined by trace ID and shown alongside the agent’s spans. Use W3C Trace Context (traceparent) consistently through those services; telemetry that starts a different trace cannot join this timeline.
The correlation self-check distinguishes missing telemetry from propagation gaps. For example, Infra spans are arriving but not correlating means infrastructure-only traces arrived without linking to an AI trace; check context propagation across threadpools, background tasks, and streaming endpoints. Morse shows correlated evidence next to the agent’s spans; it does not claim which one caused a failure.
How to use it
- Read the Run summary first; select Open the failing step to go straight to the span that failed.
- Switch tabs for the detail: Spans for the waterfall, Context & cost for the analytics, Evals for scores, Comments for feedback and discussion.
- Click a span in the waterfall, tree, or DAG to select it and read its detail; ↑ / ↓ move between spans.
- Toggle Tree / Flat and Critical path; drag the master-detail split to rebalance.
- Use the overlay chrome to navigate prev / next trace (K / J keys), open the trace in a new tab, toggle fullscreen, or close.
- Select Back to {source} to return to the page that sent you here.
- Record or update the outcome from the Summary tab, and save the trace as an eval case (or jump to its eval cases) from the identity row.
Before you have data
The detail is honest when a run has nothing to show:
- A missing duration or cost shows as an em-dash (—), never a fabricated
0. - A run nobody labelled reads No outcome recorded, with the reason: “The run finished, but nothing labeled whether it did its job.” Unlabelled is never shown as a success.
- A span with no payload reads No input captured / No output captured, or Payload not
stored (over plan limit) — never a literal
null. Demo workspace runs carry realistic inputs and outputs on every span. - If a run’s spans were hard-deleted after your plan’s retention window (but the run was priced), a “Span data expired” notice explains why the waterfall is empty.
- A failed run shows a “Trace failed” alert with its error message (or “No error message available” when none was reported). A run where steps failed but the run continued says how many steps failed and points to the red marks in the span tree.
- A trace that doesn’t exist (or is outside your retention window or workspace) reads “We couldn’t find this trace.”; any other load error shows a Retry button.
Related
- Traces — the list this overlay opens from.
- Ask Morse — where Explain this run sends its prompt.
- Cost Intelligence — cost per outcome across all runs, not just this one.