diff --git a/packages/trace-viewer/src/ui/callTab.css b/packages/trace-viewer/src/ui/callTab.css index 00aa1fe3bb..c9d3191732 100644 --- a/packages/trace-viewer/src/ui/callTab.css +++ b/packages/trace-viewer/src/ui/callTab.css @@ -96,4 +96,5 @@ .call-tab .error-message { padding: 5px; + line-height: 17px; } diff --git a/packages/trace-viewer/src/ui/modelUtil.ts b/packages/trace-viewer/src/ui/modelUtil.ts index 35f236a19e..2028bdb5f8 100644 --- a/packages/trace-viewer/src/ui/modelUtil.ts +++ b/packages/trace-viewer/src/ui/modelUtil.ts @@ -90,6 +90,11 @@ export class MultiTraceModel { this.resources.sort((a1, a2) => a1._monotonicTime! - a2._monotonicTime!); this.sources = collectSources(this.actions); } + + failedAction() { + // This find innermost action for nested ones. + return this.actions.findLast(a => a.error); + } } function indexModel(context: ContextEntry) { diff --git a/packages/trace-viewer/src/ui/workbench.tsx b/packages/trace-viewer/src/ui/workbench.tsx index 56bcb611ee..bc21f2e3b6 100644 --- a/packages/trace-viewer/src/ui/workbench.tsx +++ b/packages/trace-viewer/src/ui/workbench.tsx @@ -65,7 +65,7 @@ export const Workbench: React.FunctionComponent<{ React.useEffect(() => { if (selectedAction && model?.actions.includes(selectedAction)) return; - const failedAction = model?.actions.find(a => a.error); + const failedAction = model?.failedAction(); if (initialSelection && model?.actions.includes(initialSelection)) setSelectedAction(initialSelection); else if (failedAction)