reph

Templates · Engineering

Bug report template

Reproducible bug with expected vs actual behaviour

Start with this template →Sign in

Opens on reph with the template ready to start. No account needed; sign in to keep your document.

Use it when

You found a defect and want someone else to reproduce it without asking you a single follow-up question

Who it's for

EngineerSRE

Filled example

The template filled in for a made-up company, so you can see what good looks like.

CSV export drops rows after a comma inside a quoted field

Reporter: Arjun Mehta · Date: 2026-05-19

Summary

Exporting the orders table to CSV silently drops every row that follows an order note containing a comma.

Environment

Field Value
Version/commit web 4.12.0 (a91f3c2)
OS / browser macOS 15.4, Chrome 136; also reproduced on Firefox 138
Environment (prod/staging/local) Production, Marlowe Goods workspace

Steps to reproduce

  1. Open Orders and filter to May 2026 (412 orders)
  2. Edit order #10388 and set the note to Leave at door, ring twice
  3. Click Export, CSV
  4. Open the file in any spreadsheet tool and count the rows

Expected

412 data rows, with the note kept intact in one column.

Actual

The file has 187 data rows. The export stops at the row before #10388 with no error in the UI.

Evidence

2026-05-19T09:42:11Z ERROR export-worker job=exp_77a1 rows_written=187
  CsvWriteError: unterminated quoted field at line 188
    at writeRow (export/csv.ts:64)

The support ticket (SUP-3120) includes the customer's truncated file.

Severity & impact

Severity 2. Every workspace with a comma in any order note is affected; support has 6 tickets this week. Reproduces every time. Customers are reconciling invoices against incomplete files without knowing it.

Workaround

Export as XLSX instead, which uses a different writer and keeps all rows. Support has a macro with this advice.

Suspected cause

Commit a91f3c2 replaced the CSV library with a hand-written writeRow that quotes fields containing newlines but not commas, and the worker treats the first write error as end of stream.

The template

Show the blank template

Bug report

Reporter: [your name] · Date: [date]

Summary

One sentence: what's broken.

Environment

Field Value
Version/commit
OS / browser
Environment (prod/staging/local)

Steps to reproduce

Numbered steps from a clean start, exact enough that a teammate reproduces it on the first try.

Expected

What should have happened.

Actual

What actually happened.

Evidence

paste relevant logs, stack trace, or request/response here

Screenshots or a screen recording attached below, if visual.

Severity & impact

Who's affected, how often it reproduces (always / intermittent / 1 in N), and any workaround already in use.

Workaround

Temporary mitigation, if one exists, so support/on-call can act before the fix ships.

Suspected cause

If you have a hypothesis: the commit, config, or code path that's likely responsible.

Questions

How much detail do the reproduction steps need?
Enough that a teammate who has never seen the bug reproduces it on the first try
What severity should I pick?
Rate by user impact and frequency, not by how hard the fix looks
Should I include a fix?
Only as a suspected cause, the fix belongs in the pull request

Fill it with your agent

Connect Claude to reph over MCP, then paste this. The draft arrives as suggestions you accept or reject section by section. How to connect Claude.

Find my reph doc "Bug report" with search_docs, then read it with read_doc. Fill Environment, Steps to reproduce and Evidence from the error logs, stack trace, support ticket or recording I link. Suggest a Suspected cause only if a recent commit or config change touches that code path. File it with suggest_edit, one replace_section op per section (heading line kept) so each can be accepted alone. Ask each open question (missing versions or steps you could not confirm) with add_comment quoting that section's heading line, then call request_review with a one-line summary.

Related templates

Start with this template →Sign in