Bug reporting for QA, UAT and client testing

Testers point
at the bug.
Developers get
the evidence.

Testers, PMs and clients click Report, point at what is wrong and say what they expected. The console errors, the failing requests and the steps come attached.

Add one script tag, or turn on the Chrome extension and change nothing on the site. Tickets land in Jira, Linear, GitHub, GitLab, Trello or Azure DevOps, or wait in the SnagRelay inbox.

Start free
Michaela
“Impressed with the quality of the reports and level of detail the platform provides our devs.”
Michaela, QA Engineer, Shed Collective
  • Free plan, no card
  • Unlimited testers
  • No code on the site with the extension
Example. A UAT tester clicks Export CSV on a report and nothing downloads. The picker outlines the button in red because it threw a TypeError right after the click. SnagRelay attaches the button, the error with file and line, the failing request and its response, and the steps. A complete ticket lands in the team’s tracker, a developer fixes it from the evidence, and the tester is emailed to retest.

A tester clicks Export CSV. Nothing downloads.

staging.acme.app/reports/118

Reports › Sales by region

Date range

Last 12 monthsExport CSV
Rows18,402

Revenue by region

Report

#118 · Sales by region

Owner

Priya · Finance

Jira Linear GitHub GitLab Trello Azure DevOps Chrome WordPress React Native Cursor Claude Code Codex

The gap

“The export doesn’t work.” Which export, on which account, in which browser?

Testers know what the system should do. They do not know how to write a defect. So developers spend the day asking.

Today · what arrives

From a tester · by email

“The export doesn’t work.”

Screenshot 2026-10-12.png

  • Which export?
  • Console?
  • Network?
  • Steps?
  • Browser?

The developer

Which export, on which account? Was there an error? What browser are you on?

Back to the tester. Wait. Ask again. The ticket sits.

With SnagRelay · same bug

APP-204 · “CSV export does nothing”

Element
Reports › “Export CSV” button
Error
TypeError: reading ‘rows’ · 120 ms after the click
Source
reports/export.ts:41
Request
GET /api/reports/118/export → 500
Response
{ "error": "date range too large" }
Steps
Login → Reports → #118 → Export CSV

The developer

Reproduced. The export fails for ranges over 90 days. Handling it in export.ts:41 and showing a message.

One report. No follow-up questions.

How it works

Three steps.
Two aren’t yours.

You add one line or the Chrome extension, once. Your testers report. The ticket arrives complete.

  1. 01 · you, once

    Give testers the button

    <script async
    src="https://app.snagrelay.com/widget/load/KEY"></script>

    Can’t touch the code? Turn on the Chrome extension for the URLs you list and change nothing on the site. Then connect a tracker, or use the inbox.

  2. 02 · your tester

    They point at it

    Last 12 monthsExport CSV500TypeError · “Export CSV” button
    + replay, console, networkSend

    Click Report, point at what is wrong, write what you expected. Whatever just failed is already outlined in red. No DevTools.

  3. 03 · your developer

    The ticket is ready

    › APP-204 · CSV export does nothing

    ↳ Reports › “Export CSV” button

    ↳ TypeError · reports/export.ts:41

    ↳ GET /api/reports/118/export → 500

    A ticket in your tracker with the evidence attached. Nobody has to go back and ask.

What each report carries

Evidence, not screenshots.

The element’s name from the page, the tester’s marks, console errors with file and line, the failing request and response, and the steps. Replay is a separate watch link.

name       Reports › “Export CSV” button
page       /reports/118 · 1440×900

errors tied to it
✕ GET /api/reports/118/export → 500
✕ TypeError · 120 ms after the click

Redacted in the browser: passwords, tokens, cookies, auth headers and emails never leave the page.

Who it is for

One report. Everyone on the team can use it.

  • QA and testers

    Report without DevTools.

    • Click Report, point at the element, describe it
    • Works on staging, UAT and production
    • Repro steps are written from the session
  • Developers

    Everything on the first read.

    • Console errors with file and line
    • Requests with their request and response bodies
    • The element, named in the words of the page
  • Product managers

    Tickets that need no follow-up.

    • Reports land in the tracker you already use
    • An AI-written title above the tester’s own words
    • The reporter is emailed when it is marked resolved
  • Clients

    Report in seconds. No account.

    • Nothing to install and nothing to sign in to with the widget
    • Hide anything private before sending
    • Nothing leaves the page until they press Send

Close the loop

Testers hear back when it is fixed.

A bug that nobody answers teaches testers to stop reporting. This one answers for you.

  • 01Repeat reports are groupedFive testers hitting the same bug are linked, so the developer sees one problem with five reporters. Nothing is closed for you.
  • 02The tester can retestThe fixed email goes to the person who reported it, so the one who found the bug is the one who checks it.
  • 03Nobody writes the follow-upWhen the ticket is marked resolved, the reporter gets a plain-language email. No chasing in chat.

Example

The export bug you reported is fixed

Acme · now

Thanks, Priya — exporting a long date range now shows a message instead of failing. Please check it on your side.

Reported 10:02

In your tracker 10:02

Fixed 14:20

And the developer’s agent

The same report an agent can read.

If your developers work in Cursor, Claude Code or Codex, the agent pulls the same evidence over MCP and proposes the fix. After a human reviews it, the tester hears it is fixed.

See the agent workflow →
  • get_issue_contextEverything about a bug, by key: APP-204, #88 or a URL
  • get_related_historySimilar past bugs and the changes that fixed them
  • mark_issue_resolvedClose the bug and tell the person who reported it

Where it fits

Next to the tools you already use.

SnagRelay does one job: it turns what a tester saw into a ticket a developer can start on.

  • Screenshot-only tools

    A screenshot shows that something is wrong. It does not say what the console printed, which request failed or what the tester did before. Those are the questions developers send back.

    Why screenshots are not enough

  • Your test-management tool

    Keep test plans, cases and sign-off where they are. SnagRelay collects the defects testers find, with the evidence, and sends them to your tracker.

    How it fits a UAT round

More: all comparisons

FAQ

Before the next test round.

Questions about data handling? Read Security.

Do testers need technical knowledge?
No. They click Report, point at what is wrong and write what they expected. The console, the requests, the steps and the browser are captured for them.
Do I need Jira or a separate issue board?
No. Reports go to your tracker: Jira Cloud, Linear, GitHub, GitLab.com, Trello or Azure DevOps Services, one per project. Without a tracker they wait in the SnagRelay inbox.
Do testers or clients need an account?
Not with the widget. Anyone who can see the Report button can send a report. With the Chrome extension, the people you invite sign in with a code sent to their email.
What exactly is in each report?
The element they pointed at, a screenshot with their marks, console errors with file and line, requests with their request and response bodies, the steps, the environment and a replay link. Paid plans add optional video.
Does it manage test cases or the sign-off?
No. SnagRelay collects the defects testers find, with the evidence. Test plans, cases and the final approval stay in the tool you already use. See UAT testing.
Can we collect reports on a site we cannot change?
Yes. The Chrome extension adds the report button on the URLs you list, with no script on the site, and it works behind a login.
Is there a free plan?
Yes. The Free plan needs no card and has no time limit. Paid plans start with a 14-day trial, and a card is required to start it. Screenshots and markup are on Free; video and team members come with paid plans. The limits are on the pricing page.
Do developers need a coding agent?
No. The report is an ordinary ticket. If a developer uses Cursor, Claude Code or Codex, the agent can read the same report over MCP. How that works.

Why trust it

What a QA team saw after switching.

We switched from Usersnap primarily to cut costs, but were also impressed with the quality of the reports and level of detail the platform provides our devs.
Michaela
Michaela
QA Engineer, Shed Collective
We run our own UAT through SnagRelay. Every bug arrives reproducible. Clean releases out.
Igor
Igor
Founder and developer
@igoryussupov
The customisable widget fits perfectly with our brand, and the automatic sync keeps our entire team in the loop. An essential tool for any development team.
Eugene
Eugene
Product Manager, Prospex

Run the next test round
with the evidence
attached.

Free plan, no card. The full report from day one.