diff --git a/packages/playwright-core/src/client/tracing.ts b/packages/playwright-core/src/client/tracing.ts index 1c14fd991d..8d4f8bfb1c 100644 --- a/packages/playwright-core/src/client/tracing.ts +++ b/packages/playwright-core/src/client/tracing.ts @@ -65,8 +65,12 @@ export class Tracing implements api.Tracing { return; } + // The artifact may be missing if the browser closed while stopping tracing. + if (!result.artifact) + return; + // Save trace to the final local file. - const artifact = Artifact.from(result.artifact!); + const artifact = Artifact.from(result.artifact); await artifact.saveAs(filePath); await artifact.delete(); diff --git a/packages/playwright-core/src/protocol/protocol.yml b/packages/playwright-core/src/protocol/protocol.yml index c1625e2885..648263f926 100644 --- a/packages/playwright-core/src/protocol/protocol.yml +++ b/packages/playwright-core/src/protocol/protocol.yml @@ -840,6 +840,7 @@ BrowserContext: - compressTrace - compressTraceAndSources returns: + # The artifact may be missing if the browser closes while tracing is beeing stopped. artifact: Artifact? sourceEntries: type: array?