The single most useful skill in any bug report is describing the problem so clearly that another engineer can reproduce it without asking a single question. Most bug reports fail at this. This guide gives you a simple structure and the precise English that turns “it doesn’t work” into a report someone can fix today.
The Golden Rule: Expected vs Actual
Every clear bug description contrasts two things:
- What you expected to happen.
- What actually happened instead.
“I expected the form to submit and show a success message. Instead, the page reloaded and the form was empty, with no error shown.”
If you only describe one side, the reader has to guess the other. Always state both.
A Simple Structure
- Summary — one sentence.
- Steps to reproduce — numbered.
- Expected result.
- Actual result.
- Environment — browser, OS, version, account type.
- Evidence — screenshot, log, error message.
Summary: Uploading a PDF over 5MB fails silently. Steps: 1. Go to Documents. 2. Click Upload. 3. Select a 6MB PDF. Expected: The file uploads and appears in the list. Actual: The progress bar reaches 100%, then nothing happens. No file appears, no error shown. Environment: Chrome 124, macOS, Pro account.
Precise Verbs for Describing Behaviour
Vague verbs slow everyone down. Use precise ones:
| Vague | Precise |
|---|---|
| “It breaks.” | “It throws a 500 error.” |
| “It’s weird.” | “The list shows duplicate entries.” |
| “It freezes.” | “The UI becomes unresponsive for about ten seconds.” |
| “Nothing happens.” | “The button click has no visible effect and logs no request.” |
“The request hangs for thirty seconds, then times out with a 504.”
Describing Frequency and Conditions
Reproducibility is gold. Tell the reader how often and under what conditions:
- “This happens every time.”
- “It’s intermittent — roughly one in five attempts.”
- “It only happens when the user has more than 100 items.”
- “I can’t reproduce it consistently, but it tends to occur after the session has been open for a while.”
“It only fails on mobile Safari; desktop browsers work fine.”
The word “only” is powerful — it narrows the search dramatically.
Including the Error Message Verbatim
Never paraphrase an error. Copy it exactly.
“The console shows:
TypeError: Cannot read properties of undefined (reading 'id')atcart.js:42.”
Paraphrasing (“some error about undefined”) loses the detail that often points straight to the cause.
Words That Add Useful Context
- “This started happening after the last deploy.”
- “It used to work in the previous version.”
- “This is a regression — it worked last week.”
- “It’s a blocker — I can’t continue testing until it’s fixed.”
“This is a regression from version 2.3 — the same flow worked there.”
The word “regression” tells the team that something that worked is now broken, which changes how urgently they treat it.
What to Leave Out
A clear report avoids:
- Guesses about the cause stated as fact (“it’s definitely the database”). Offer them as theories: “my guess is it’s related to caching, but I’m not sure.”
- Emotional language (“this is a disaster”). State impact instead: “this blocks all new sign-ups.”
- Three bugs in one report — file them separately.
A Phrase Bank for Bug Reports
“Steps to reproduce:” “Expected behaviour:” “Actual behaviour:” “This happens consistently / intermittently.” “It only occurs when…” “This is a regression from…” “Attaching a screenshot and the full stack trace below.”
Quick Before-and-After
Before: “Upload is broken, please fix.”
After: “Uploading PDFs over 5MB fails silently on Chrome (steps below). Expected: file uploads. Actual: progress hits 100% then nothing happens, no error. Consistent. Screenshot and console log attached.”
The second version can be fixed today; the first generates a day of questions.
Describing a bug clearly is a gift to whoever fixes it — and often that’s your future self. Contrast expected with actual, number your steps, quote errors verbatim, and state the conditions precisely. Master this simple structure and your bug reports will become the ones developers actually want to pick up.
Navigating Nuances: Speaking Your Bug Clearly – For Non-Native Developers
Let’s face it; technical jargon isn’t always universally understood. Even within a team, subtle differences in phrasing can significantly impact how clearly a bug is communicated and, consequently, the speed at which it gets resolved. As a non-native English speaker, focusing on precision and clarity – particularly when describing issues – is crucial for demonstrating professionalism and facilitating effective collaboration. It’s not just about stating what went wrong; it’s about how you describe it in a way that allows others to quickly understand, reproduce, and ultimately fix the problem. This isn’t simply about using correct grammar, but understanding the specific nuances of professional technical communication.
One common pitfall is relying solely on translating technical terms directly. For example, instead of saying “the API returned an error,” which might be perfectly understandable within a team familiar with that terminology, consider phrasing it as: “The API call failed to return data, resulting in a 500 Internal Server Error.” This provides immediate context – what failed and why. Similarly, when detailing reproduction steps, avoid vague instructions like “try running the code.” Instead, use precise verbs and details. “Please run npm start and navigate to /users/123 in your browser; you should then observe…” is far more actionable.
A crucial shift involves moving beyond simply stating “it’s broken” – a phrase that offers no immediate guidance. Aim for descriptions centered on observable behavior. Instead of “the button doesn’t work,” try, “When clicking the ‘Submit’ button, no action occurs and there is no visual feedback to indicate success or failure.” This focuses on what the user sees and experiences, which is often more relatable and easier to diagnose. Remember, a good bug report isn’t about your frustration; it’s about providing actionable information for someone else to solve the problem efficiently.
Finally, remember that clear communication extends beyond written reports. Slack messages describing bugs should follow similar principles – concise, specific, and focused on observable issues. Avoid ambiguity. Instead of “something’s wrong with the login,” try “I’m unable to log in; after entering my credentials, I receive a ‘Invalid username or password’ error.” Using precise language builds trust and demonstrates your commitment to clear problem-solving.
Keep practising
Turn this article into muscle memory
Five-minute exercises with instant feedback — built from the same kind of real IT language.
What to read next
Frequently asked questions
What will I learn from "How to Describe a Bug Clearly in English"?
This is a Beginner-level Writing article covering writing, debugging, communication and bugreport. Describe a bug clearly in English: expected vs actual behaviour, reproduction steps, environment details, and the precise verbs that make a report instantly actionable.
Is this article free to read?
Yes. Every article on CoderSlingo, including this one, is free to read with no account, sign-up, or paywall.
How is reading this article different from doing an exercise?
Articles like this one explain concepts and vocabulary in context through prose, while exercises are interactive drills — fill-in-the-blank, matching, and multiple-choice — that test and reinforce specific terms. Reading builds understanding; exercises build recall.
Can I practice the vocabulary used in this article?
Yes — this article's topic lines up with our writing exercises. Use the "Practice this vocabulary" link below to jump straight into a matching drill.
How long does "How to Describe a Bug Clearly in English" take to read?
About 8 min. Most CoderSlingo articles, including this one, are written to be read in one sitting, without needing a dictionary open in another tab.
Do I need to create an account to read or save this article?
No account is required to read any article. If you complete exercises elsewhere on the site, your progress is saved locally in your browser — no login needed.
What if I don't understand a technical term used in this article?
Check the site Glossary for plain-English definitions of common IT terms, or browse the #writing tag page for other Writing articles that use the same vocabulary in different contexts.
Can I share or link to "How to Describe a Bug Clearly in English"?
Yes — use the Twitter/X or LinkedIn share buttons at the end of the article, or copy the page URL directly. Attribution back to CoderSlingo is appreciated but the content is free to reference.
When was this Writing article published?
This article was published in 2026. New Writing articles are added regularly — visit the #writing tag page to see the full, continuously updated list.
Where can I find more articles like this one?
See "How to Take Effective Meeting Notes in English", "How to Write a Meeting Follow-Up Email in English", "How to Write a Slack Thread Summary in English" in the Related Articles section below, or browse all Writing articles from the main Blog index.