Why is Pro access missing?
The payment was accepted, but the callback returned an account-update error. The final account check still returned the Free plan.
Example investigation · each reference opens the captured detail in the illustration above.
Open one run and follow its browser action, page, request, console message, and available service detail in sequence. See the failed request beside the browser step that triggered it, then share the run with the engineer fixing it.
Explore a sample failure below, then watch an actual recorded run.
Move through the captured steps. The page, requests, console and test-service records stay on the same step, so you can see where the flow broke.
Sam’s workspace
Your account is still on the Free plan.
GET /api/accountResponse body
{
"plan": "free",
"access": false
}GET /api/accountResponse body
{
"plan": "pro",
"access": true
}Illustrative checkout failure. Select “Receive callback,” then compare the failed request with the passing example.
The last assertion tells you the account is still locked. The earlier callback tells you where to start investigating.
The payment was accepted, but the callback returned an account-update error. The final account check still returned the Free plan.
Example investigation · each reference opens the captured detail in the illustration above.
Inspect the code and dependencies behind account_update_failed. The request identifies where the visible failure begins; it does not establish which line of code caused it.
After a fix, rerun from the same test account and service state. Check both callback delivery and Pro access. A successful payment alone would miss the bug again.
Prepare repeatable service stateUse a passing run with the same task, account role and test-service setup. An unrelated green run can produce an unhelpful diff.
SucceededSucceeded200 · delivered500 · failedPro · accessFree · lockedStart with the capture path your runner supports. Bring the run ID and its available artifacts into the investigation.
Add this option to your existing config to retain traces for failed tests. Playwright records actions, DOM snapshots, network and console activity; its viewer can inspect them locally.
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: { trace: 'retain-on-failure' },
});npx playwright test e2e/checkout.spec.ts --trace on
npx playwright show-trace path/to/trace.zipReplace the test and trace paths. The first command runs your test; the second opens the saved recording. These are Playwright commands, not a Molar upload.
Read Playwright’s capture guidemolar trace export TRACE_ID --format markdown --output trace-report.md --json
molar trace diff PASSING_TRACE_ID FAILING_TRACE_ID --jsonUse the Molar CLI after molar login. Replace all Trace IDs. Export writes a local report; it does not publish a share link. Available formats depend on the captured artifacts.
For Playwright and Cypress, add @molar/reporter to send results, traces and attachments to Molar. For other runners, talk to us. A recording from another framework does not automatically include its network, DOM or test-service state.
Inspect the failed action and the requests around it. Available detail depends on your runner and capture settings.
| Captured detail | The question it helps answer | What to check in your setup |
|---|---|---|
| Steps and assertions | Which action ran, and which condition failed? | Keep the original assertion and final run status. |
| Screenshots and video | What appeared in the browser at that point? | Recording availability, playback, and retention. |
| Network and console | Which request or browser error preceded the failure? | The captured time range, payload visibility, and redaction. |
| Clone state | Did the payment, message, or account record change? | The specific clone and state captured by this run. |
| Trace comparison | What changed between these two runs? | Comparable tasks, starting state, and both authorized trace IDs. |
| Exports | Can a teammate or tool inspect the saved result? | Available formats and access to the captured artifact. |
Illustrative availability states; inspect the list on your actual run.
A missing DOM snapshot does not mean the page never changed. An absent request body may reflect capture settings or redaction. Check what was retained before drawing a conclusion.
Keep credentials and private payloads out of issue descriptions. Check the workspace’s access, masking and retention settings before capturing or sharing sensitive flows.
Read about access and data handlingRead the events around one step or compare two authorized traces. A focused result is easier to investigate than an entire log dump.
molar_read_trace_slice filters captured events by kind and exact step ID. This example requests up to 100 network responses.
{
"trace_id": "TRACE_ID",
"kind": "network.response",
"step_id": "STEP_ID",
"limit": 100,
"offset": 0
}molar_diff_traces compares network, assertion, clone or DOM evidence. Both Trace IDs must be accessible to the connected workspace.
{
"trace_a": "PASSING_TRACE_ID",
"trace_b": "FAILING_TRACE_ID",
"dimension": "network"
}Replace the Trace IDs and Step ID with values from your run. These tools read captured data; they do not start a browser or rerun a payment.
Connect Molar to your coding agentPlayback revisits saved data. A new test executes against an environment and produces a separate result. Rerunning a single step isn’t available yet.
See how proposed repairs are reviewedThis unedited run shows Molar adding an element, checking it appeared, removing it, and checking it was gone. Open the result to inspect the actions and checks beside the video.
The result and recording describe this four-step browser task. The checkout debugger above uses a separate, illustrated example.
Read the run and its checks Open the recorded resultSend the run and selected step to an authorized teammate. Include the expected behavior, the failing assertion, and the relevant captured request or service record. That is enough to begin investigating without recreating your entire environment.
Coding agents can inspect structured results through Molar’s CLI and MCP tools. Give them the relevant step or export, then check the fix with a new run.
Have a specific workflow in mind?
Talk to us
Every hosted run records a video, a screenshot for each step, a HAR network log and a Playwright trace. Clone state appears when the run used clones. Results sent from your own test runner include only what that runner captured.
No. Playback shows captured media from an existing run. Starting a new browser task or replaying a generated test executes code again and needs its own environment, accounts, and result. Generated clean replay is still under validation in beta.
The CLI can compare two traces your workspace is authorized to access. Use the same task and comparable starting state to make the differences meaningful. The interactive comparison above uses authored sample data.
Yes. Keep Playwright Trace Viewer for your existing recordings. Molar Trace organizes the captured browser steps and available service details for Molar runs. Export formats depend on the artifacts that exist for that run.
Include the run ID, selected step, expected behavior, failed assertion, and relevant captured request or service record. Share through a path the recipient is authorized to access, rather than copying credentials or private payloads into an issue.
Molar provides CLI and MCP tools for reading run results and trace details. The agent needs the configured authentication and relevant trace ID. Read the current developer documentation for the available tools.
Trace provides the captured details that help you investigate. A failed assertion and preceding request can identify a useful starting point, but they do not by themselves establish the root cause. Review the app behavior and verify any proposed fix.
Yes. Add @molar/reporter to your Playwright config (or its Cypress adapter) with an API token. Your tests, retries and exit status stay as they are; Molar receives the results, Playwright traces and attachments after each run.
Screenshots, video, network logs and traces are kept for 5 days, and run records for 90 days. Download anything you need to keep. Exporting a report does not create a public link.
Captured actions, outcomes and available decision summaries help explain the run. These are bounded run records, not a promise to expose a model’s private internal reasoning.
Create a free workspace, add the app’s URL and a test account, and run the task you want to investigate. Talk to us if your app needs a special capture setup. You can inspect the public recording above before connecting your app.
Create a free workspace, add your app’s URL and a test account, and describe the first task to check.
Free during the beta. No card.