← Latest papers
💻 computer science

InEx-Bug: A Human Annotated Dataset of Intrinsic and Extrinsic Bugs in the NPM Ecosystem

This paper introduces InEx-Bug, a manually annotated dataset of 377 GitHub issues from the NPM ecosystem that distinguishes between intrinsic and extrinsic bugs, revealing significant differences in their resolution times, closure rates, and recurrence patterns to facilitate better software maintenance and ecosystem stability.

Original authors: Tanner Wright, Adams Chen, Gema Rodríguez-Pérez

Published 2026-02-24
📖 4 min read☕ Coffee break read

Original authors: Tanner Wright, Adams Chen, Gema Rodríguez-Pérez

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you own a bustling digital city called NPM. This city is built entirely out of Lego blocks, but here's the twist: every building (software project) is constructed using bricks from thousands of other people's sets. You don't just build your own tower; you also rely on the neighbor's foundation, the city's plumbing, and the weather outside.

Sometimes, a building develops a wobble. The question is: Did the wobble happen because you built a weak wall, or because the neighbor changed their foundation, or maybe because it started raining?

This is the problem the paper "InEx-Bug" tries to solve.

The Big Problem: "It's Not My Fault!"

In the past, researchers had a messy pile of complaints about these wobbling buildings. They knew something was broken, but they didn't know who was to blame.

  • Was it an Intrinsic Bug? (You built a crooked wall).
  • Was it an Extrinsic Bug? (The neighbor changed their bricks, or the rain ruined your paint).
  • Was it a Not-a-Bug? (The user just didn't know how to turn the lights on).

Without knowing the difference, it's impossible to fix the city efficiently. If you spend all day fixing your own walls when the problem is actually the rain, you're wasting time.

The Solution: A Detective's Notebook

The authors (Tanner, Adams, and Gema) acted like a team of digital detectives. They went into the NPM city, picked 377 specific complaints from 103 different buildings, and manually investigated each one.

They didn't just look at the code (the bricks); they looked at the conversations, the timeline, and the fixes. They created a special "Detective Notebook" (the dataset) that labels every complaint:

  1. Intrinsic: "Yes, we messed up. We'll fix our wall."
  2. Extrinsic: "We didn't break it! The neighbor updated their plumbing, and now our pipes are leaking."
  3. Not-a-Bug: "Actually, you're just holding the Lego piece upside down. Here's a manual."
  4. Unknown: "We have no idea what happened yet."

What They Discovered (The "Aha!" Moments)

Once they sorted the complaints, some very interesting patterns emerged, like finding out that "rainy days" behave differently than "broken walls."

  • The "Broken Wall" (Intrinsic) is easier to fix:
    When the builders messed up their own wall, they fixed it faster (about 9 days) and more often (92% of the time). They knew exactly which brick to swap.

    • Analogy: If you drop your own sandwich, you pick it up immediately.
  • The "Neighbor's Fault" (Extrinsic) is a headache:
    When the problem came from outside (a dependency update), it took longer to fix (10+ days) and was less likely to get a permanent fix (only 78% closed).

    • Analogy: If the neighbor changes their fence, you have to wait for them to talk to you, or you have to buy a new fence yourself. It's messy and slow.
  • The "Ghost" Problems (Reopening):
    Extrinsic bugs are sneaky. They often get "fixed," but then come back to life (reopened) much later (about 5 months later).

    • Analogy: You think you fixed the leak, but then the neighbor changes their plumbing again three months later, and the leak returns. Intrinsic bugs rarely do this; once you fix your wall, it stays fixed.
  • The "Help Desk" Overload (Not-a-Bug):
    The biggest surprise? Nearly 60% of the complaints weren't bugs at all! They were just people asking questions or making mistakes.

    • Analogy: Imagine a restaurant where 6 out of 10 customers aren't complaining about the food; they are just asking, "Where is the bathroom?" or "How do I use the ketchup?" This takes up a huge amount of the chef's time.

Why Does This Matter?

This paper gives us a map for the future.

  1. For the Builders (Maintainers): They can now see that they are spending too much time answering "How-to" questions. They might need better signs (templates) to stop people from asking the wrong questions.
  2. For the Tool Makers: If you are building an AI to automatically fix bugs, you need to teach it the difference between "I broke my own wall" and "The rain ruined my paint." If you don't, your AI will try to fix the rain with a hammer!
  3. For the City Planners: It shows us that in a world where everything is connected, problems spread slowly and unpredictably. We need to be ready for the "neighbor effect."

The Bottom Line

The authors didn't just find bugs; they found the personality of the bugs. They showed us that internal mistakes are quick to fix, but external problems are slow, sneaky, and require a lot of patience. By sorting these out, we can build a more stable, less frustrating digital city for everyone.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →