Blog/ Email writing & templates

Bug Report Acknowledgement Email to a Customer: 9 Templates

Nafiul HasanNafiul Hasan· 14 min read
A magnifying glass over a small bug on a mint ticket card, with a reply envelope lifting off and a desk calendar with the next update date marked in green

The short answer

Acknowledge a customer's bug report in one working day with four things: a ticket ID, what you understood they saw, what happens next, and the date of your next update. Don't promise a fix date you don't control. A dated next update is a promise you can keep.

Bug report acknowledgement email to customer: 9 copy-paste templates, from reproduced to won't-fix-soon. Promise a next update date, not a fix date.

On this page
  1. 01When should you send a bug acknowledgement email?
  2. 02What does a good bug acknowledgement contain?
  3. 03Should you give a customer an ETA for a bug fix?
  4. 04Which template fits which situation?
  5. 05The templates
  6. 06Template 1: reproduced and queued
  7. 07Template 2: reproduced, no ETA
  8. 08Template 3: not yet reproduced
  9. 09Template 4: known issue with a workaround
  10. 10Template 5: working as designed
  11. 11Template 6: low priority, the honest answer
  12. 12Template 7: first-touch holding reply
  13. 13Template 8: duplicate of an open bug
  14. 14Template 9: urgent or data-affecting
  15. 15What is the hard version of this situation?
  16. 16What do you do if the customer doesn't reply?
  17. 17Where AI Emaily fits

A customer who reports a bug is doing you a favour. They hit a wall, took time to describe it, and chose to tell you instead of quietly leaving. The bug report acknowledgement email to a customer is your one chance to show that the favour landed somewhere.

Most acknowledgements fail in one of two ways. They are a cold auto-reply that says nothing, or they are a warm promise of a fix by Friday that engineering never agreed to. This post gives you nine templates that avoid both, plus the reasoning behind the one rule that matters: commit to a next-update date, not a fix date.

When should you send a bug acknowledgement email?#

Send it as soon as a human has read the report and decided it is a bug, or might be one. Do not wait for engineering to confirm. The acknowledgement is not a diagnosis. It says: we received it, we understood it, and here is what happens next.

Speed matters more than polish. A short, honest reply in the same working day beats a perfect one three days later, because the customer's main fear is that the report went into a void. If your team runs a published support hours policy, acknowledge inside it.

Send a separate acknowledgement for each distinct bug, even when one customer reports three things in one message. Each gets its own ticket ID, and each will move at its own speed. Bundling them guarantees that one stalled bug drags the other two into silence.

What does a good bug acknowledgement contain?#

Every good version has the same four parts. The brackets in the templates below map to them, so you can fill each one in under a minute.

PartPlaceholderWhat it doesCommon mistake
Reference[TICKET ID]Gives both sides one handle for follow-up and links later emails to this oneLeaving it out, so the customer has to quote the whole thread
Restated problem[WHAT WE SAW]Proves a person read the report and shows the customer if you misunderstoodPasting their message back instead of summarising it
Workaround[WORKAROUND]Lets the customer keep working while the fix waitsOffering a workaround you have not tried yourself
Next update[NEXT UPDATE]Names the date you will write again, whether or not there is newsWriting 'soon' or 'shortly' instead of a calendar date

Two more habits separate good acknowledgements from forgettable ones. First, say one specific thing the customer told you, such as the browser, the screen or the error text. Second, own the experience without grovelling: one sentence of regret, then move on to the useful part.

Should you give a customer an ETA for a bug fix?#

Usually not. A fix date depends on people and queues you may not control: triage, a code review, a release train, a dependency from another team. The moment you write 'fixed by Friday' you have turned an engineering estimate into a customer promise.

A next-update date is different. You control it completely. 'I will write to you again by Thursday 5 November with whatever I know' is a promise you can keep even when the news is 'nothing has changed'. Customers read a kept small promise as reliability, and a broken big one as dishonesty.

Give a fix ETA only when someone who owns the fix has committed to it, and phrase it as a window with the reason it could slip. The templates below show where that is safe and where it isn't.

Which template fits which situation?#

Pick the template by what you know right now, not by what you hope will be true. If you are unsure between two, choose the one that promises less.

#SituationWhat you can honestly sayFix date promised?
1Reproduced and queuedConfirmed, in the backlog with a priorityOnly if engineering committed
2Reproduced, no ETAConfirmed, not yet scheduledNo
3Not yet reproducedWe tried and need more detailNo
4Known issue with workaroundAlready tracked, here is a way around itNo
5Working as designedThis is intended, here is why and what else you can doNot applicable
6Low priority, honest answerReal bug, will not be fixed soonNo, and say so
7First-touch holding replyReceived, a person is lookingNo
8Duplicate of an open bugSame issue as one we already trackNo
9Urgent or data-affectingEscalated now, next update inside hoursNo

The templates#

Each template uses four square-bracket placeholders: [TICKET ID], [WHAT WE SAW], [WORKAROUND] and [NEXT UPDATE]. Replace [Your Company], [Name] and [Your Name] as well. Edit freely. These are scaffolds, not scripts, and a customer can tell when a line has not been touched.

Template 1: reproduced and queued#

Use this when your team reproduced the bug, logged it and gave it a priority. You may only include a fix window if the owner of the fix has agreed to it.

Reproduced and queued
SubjectWe've reproduced the problem you reported [TICKET ID]
Hi [Name],
Thanks for reporting this. We've reproduced the problem: [WHAT WE SAW]. That is a real bug on our side, not something you did wrong.
It is logged as [TICKET ID] and sits in our queue with a priority assigned. I don't have a fix date to give you yet, and I'd rather not guess.
Until it's fixed, you can do this: [WORKAROUND].
I'll write to you again by [NEXT UPDATE] with where it stands, even if the answer is that nothing has moved.
Thanks for taking the time to tell us,
[Your Name], [Your Company]

Template 2: reproduced, no ETA#

This one is for a confirmed bug that nobody has scheduled. It is the most common situation and the one most often smoothed over with false cheer.

Reproduced, no ETA
SubjectConfirmed: the bug you reported [TICKET ID]
Hi [Name],
We've confirmed what you described: [WHAT WE SAW]. Thank you for the detail. It made this quick to check.
It's tracked as [TICKET ID]. It hasn't been scheduled for a fix yet, so I can't give you a date, and I won't invent one.
In the meantime: [WORKAROUND].
I'll update you on [NEXT UPDATE], and sooner if it gets scheduled.
[Your Name], [Your Company]

Template 3: not yet reproduced#

When you cannot make the bug happen, the acknowledgement must not sound like doubt about the customer. State what you tried, ask for the one or two missing facts and keep the ticket open.

Not yet reproduced
SubjectWe're looking into this but need one more detail [TICKET ID]
Hi [Name],
Thanks for flagging this. We've tried to reproduce it using what you sent: [WHAT WE SAW]. So far we haven't been able to make it happen on our side. That usually means a detail we're missing, not that you're mistaken.
Could you tell us: which device and version you were using, and the exact steps just before it happened? A screenshot or screen recording helps if you have one.
If you're blocked right now, this might help: [WORKAROUND].
The report is open as [TICKET ID]. I'll check back with you by [NEXT UPDATE], whether or not we've found it.
[Your Name], [Your Company]

Template 4: known issue with a workaround#

If the bug is already documented, say so plainly and lead with the workaround. The customer cares more about getting unstuck than about whether they were first to report it.

Known issue with a workaround
SubjectThis is a known issue, and here's a way around it [TICKET ID]
Hi [Name],
What you're seeing, [WHAT WE SAW], is a known issue we're already tracking as [TICKET ID]. Your report helps us understand how many people it affects.
Here's how to work around it for now: [WORKAROUND].
The workaround has one limit: it avoids the problem but doesn't fix it, so you may need to repeat it. If it doesn't work for you, reply to this email and tell us what happened.
I'll send you an update by [NEXT UPDATE].
[Your Name], [Your Company]

Template 5: working as designed#

This is the hardest to write kindly. The customer reported a bug and the answer is that the product does what it was built to do. Explain the intent, acknowledge that it feels wrong to them and offer the nearest alternative.

Working as designed
SubjectAbout what you reported [TICKET ID]
Hi [Name],
Thanks for writing in. I looked into what you described: [WHAT WE SAW]. This is how it's designed to work, not a fault, and the reason is [REASON].
I understand that it doesn't match what you expected, and your report is useful for that reason. I've added it to our feedback log as [TICKET ID] so the team sees a real case where the design surprised someone.
What you can do instead: [WORKAROUND].
If I've misread what you're seeing, please tell me. I'd rather be corrected than leave you with the wrong answer. I'll check in on [NEXT UPDATE] to see whether this helped.
[Your Name], [Your Company]

Template 6: low priority, the honest answer#

Sometimes the bug is real and will not be fixed soon. That is a decision about priorities, and customers handle it better than you expect when it comes with a straight answer. The next section explains why this is the version to get right.

Real bug, will not be fixed soon
SubjectYour bug report: an honest answer [TICKET ID]
Hi [Name],
I've confirmed the problem you reported: [WHAT WE SAW]. It's a real bug, and I'm sorry it's affecting you.
I want to be upfront: it isn't on our near-term plan. It affects a small part of the product and we're working on things that affect more people first. I'd rather tell you that now than leave you waiting for a fix that isn't coming soon.
Here's what I can offer: [WORKAROUND].
It's logged as [TICKET ID] and will stay open. I'll review it with the team and write to you by [NEXT UPDATE] to say whether anything has changed. If this is blocking something important for you, tell me what it is and I'll raise it.
[Your Name], [Your Company]

Template 7: first-touch holding reply#

Use this when you have a report but no time to look yet, for example outside support hours or on a busy day. It is better than silence and better than an auto-reply, because it says a person will read the details and when.

First-touch holding reply
SubjectWe've got your report [TICKET ID]
Hi [Name],
Thanks for reporting this. I understand you saw [WHAT WE SAW]. I haven't been able to look into it properly yet, and I don't want to guess before I have.
Your report is logged as [TICKET ID]. I'll come back to you by [NEXT UPDATE] with what I find. If it stops you working in the meantime, reply here and I'll move it up.
[Your Name], [Your Company]

Template 8: duplicate of an open bug#

Tell the customer you merged their report into an existing one, and why that is good for them rather than a brush-off. The key is to keep them subscribed to the outcome.

Duplicate of an open bug
SubjectYour report is linked to an open bug [TICKET ID]
Hi [Name],
Thank you. What you reported, [WHAT WE SAW], matches a bug we already have open as [TICKET ID]. I've linked your report to it, so you'll be told when it moves.
You haven't lost anything by arriving second. Each linked report helps us judge how much it matters.
Meanwhile: [WORKAROUND].
I'll write by [NEXT UPDATE].
[Your Name], [Your Company]

Template 9: urgent or data-affecting#

If the bug loses data, exposes someone's information or blocks the customer from paying you, drop the standard cadence. Acknowledge fast, say who now owns it and make the next update hours away, not days.

Urgent or data-affecting
SubjectUrgent: we're on this now [TICKET ID]
Hi [Name],
Thank you for telling us straight away. What you describe, [WHAT WE SAW], is serious and I've escalated it to our engineering team as [TICKET ID] right now.
Please don't [ACTION TO AVOID] until you hear from us. If you need to keep going, here's the safest option we know of: [WORKAROUND].
I'll write again by [NEXT UPDATE], which will be within hours, with what we've found. If anything changes on your side before then, reply here or call [PHONE].
[Your Name], [Your Company]

Don't promise what you haven't checked

Never offer a workaround you haven't tried. A bad workaround on a data-affecting bug turns one problem into two, and the second one is your fault. If you have no safe workaround, say that instead.
One incoming envelope splitting into four lanes that end at a check mark, a pinned note, a gear and a green warning beacon; the beacon's lane is the shortest, the fast track for urgent or data-affecting bugs
Pick the reply by what you know today, not what you hope will be true next week.

What is the hard version of this situation?#

The hard version is acknowledging a bug you will not fix soon. Template 6 covers it, but the instinct to soften it is strong. Support teams are tempted to write 'we'll look into it' and let the ticket age quietly. That is a promise you did not mean to make, and the customer will hold you to it.

The better move is to say the truth and replace the missing fix date with something you can deliver: a next-update date. 'I'll review this again by [NEXT UPDATE] and tell you whether anything has changed' costs you one calendar entry and one short email. It tells the customer the issue is being tracked by a person, not buried.

This is also where an internal rule helps. Set a review interval for every open low-priority bug, such as monthly, and send the update even when the decision is unchanged. Atlassian's incident handbook says its teams aim to know about problems before customers do and commit to specific changes by specific dates. You will not run incident-level process for a minor bug, but the habit of dated commitments carries over.

Say 'not soon' as a plain sentence

Customers forgive a bug that won't be fixed soon far more readily than a fix that was promised and missed. 'This isn't on our near-term plan' is a complete, respectful sentence. Add what you will do instead, and stop there.

What do you do if the customer doesn't reply?#

Often they won't, and that is fine. Silence after an acknowledgement usually means the customer is satisfied that someone has it. It becomes a problem only when you asked a question in the email, such as the device and steps in template 3.

If you asked and heard nothing, send one short nudge after about a week. Restate the ticket ID and the single question, say you will keep the ticket open for a stated period and close it kindly when the date passes. Do not send a third message.

For a bug you promised to update on, keep your promise whether or not they replied. The next-update date is for them, but it is also a check on your own team. If you slip it once, send the update anyway with an apology and a new date.

  1. 1

    Day 0: acknowledge

    Send the template that fits, with a ticket ID and a next-update date.

  2. 2

    Day 7: one nudge, only if you asked a question

    Restate the question in one sentence and say how long the ticket stays open.

  3. 3

    On the next-update date: write regardless

    Send the update even if it is 'no change', with the next date.

  4. 4

    At close: tell them

    Never close a ticket silently. Say it is closed and how to reopen it.

Where AI Emaily fits#

Once you have these nine, the work is repetition: pick one, fill four brackets, check the tone, send. We build AI Emaily, an email client with an AI assistant, and this is the kind of reply it helps with. You can save each template as a reply template and insert it by typing //. If you write the brackets as {{placeholders}}, any it can't resolve from context stays highlighted so you fill it yourself.

The assistant can draft the filled-in version from your Personal Context and your notes, and nothing sends until you approve it, with undo send as a backstop. To be clear about the limits, AI Emaily is not a bug tracker or a helpdesk. It won't create the ticket or tell you whether the bug is real. You still decide which template fits, and you still own the promise in [NEXT UPDATE]. See the pricing page for the 7-day free trial, or start from the homepage.

Frequently asked

Nafiul Hasan

Written by

Nafiul Hasan

Nafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.

EntrepreneurAI Automation System BuilderAI EnthusiastBuilds AI Enterprise Solutions10+ years experience
More from Nafiul
Ready when you are

Send the right acknowledgement in seconds, not minutes

Save these templates, let the assistant draft the filled-in reply, and approve it before it goes. 7-day free trial, card required, $0 if you cancel before day 7.

  • 7-day free trial
  • Cancel anytime
  • Every provider