Issue vs bug
An issue is any item recorded in a tracker that somebody has to deal with: a bug, a feature request, a question, a task or technical debt. A bug is the subset of issues that describe a defect: the software doing something other than what it was supposed to do. Every filed bug is an issue; an issue is a bug only when a defect is behind it.
The longer version
The word issue comes from the tracker, where it is the generic record type: a title, a description, a state, an assignee. Trackers then subtype it, and bug is one of the subtypes alongside story, task, epic and improvement. The subtype matters because it decides what the record needs and where it goes. A bug needs steps to reproduce, an expected result and an actual result, and it goes to triage. A feature request needs a rationale and an owner, and it goes to the roadmap. Filing one as the other sends it into the wrong process.
Requests get filed as bugs and bugs get hidden inside tasks. A client writes 'the search does not find products by SKU' and files it as a bug; the search was never built to index SKUs, so this is a feature request wearing a bug's vocabulary. A developer files 'refactor the payment module' as a task, but the reason for the refactor is a defect that surfaces every few weeks, so the record hides a bug. The test is whether the software is doing what it was specified, or could reasonably be expected, to do. If it is, the issue is a request. If it is not, it is a bug, however it was filed.
The cost of getting it wrong shows up in the numbers a team reads off its tracker. A bug count that includes feature requests looks alarming and drives a freeze nobody needed. A backlog where defects are filed as tasks reports a clean bug queue while users keep hitting the same fault. The fix is at intake: whoever triages the queue reclassifies each item before ranking it, and a tracker that lets reporters pick the type themselves gets checked, because reporters pick 'bug' for anything that annoyed them.
Common questions
Is every bug an issue?
Every bug that has been filed is an issue, because issue is the tracker's word for any record. The reverse does not hold: an issue is only a bug if the software is behaving differently from its specification. Requests, questions, tasks and design changes are issues with no defect behind them.
Who decides whether an issue is a bug or a feature request?
The product owner decides, because the deciding question is whether the behaviour was specified, and that is a question about what the product promises. QA supplies the evidence the decision needs: what the software did, what the specification or documentation says, and whether the two differ. Reporters propose a type when they file; leaving the decision with them fills the bug queue with requests, since anything that frustrated a user feels like a bug.
What is the difference between an issue, a bug and a defect?
Issue is the broadest: any tracked item, whatever its type. Bug and defect both name a flaw in the software and are interchangeable in daily use, with defect the word standards documents prefer; that pair is covered under defect vs bug. So a defect is a bug, and a bug is one kind of issue.
What happens when a feature request is filed as a bug?
The request enters the defect process instead of the roadmap: someone tries to reproduce behaviour that is working as designed, a severity is argued over, and the open bug count rises with an item no fix will close. Triage catches it by asking whether the software departs from its specification; when it does not, the item is reclassified as a request and moved to whoever owns the backlog of new work.
Is a user misunderstanding a bug or an issue?
A single user who expected something the software never promised has raised an issue with no defect behind it, and the record becomes a support note, a documentation change or a request. The same misunderstanding arriving from many users is different: a control that most people read wrongly is a design defect, and the report is reclassified as a bug against the interface rather than closed as user error.
Bug reports that arrive ready to triage.
Collect replay, console, network and browser context with the Free plan.