# Collapse one error that reports as hundreds of issues

One error that arrives as four hundred separate issues because a unique value is in its message.

Category: Error reporting and triage
Source: https://letsship.ai/use-cases/fix-error-grouping
Published: 2026-08-25

## Goal

Correct the fingerprinting for an error that groups into hundreds of separate issues.

## Acceptance criteria

- The error groups into a single issue
- Variable data moves from the message into structured context
- Issue counts before and after are recorded
- No genuinely distinct error is merged in the process

## What lands as proof

Issue counts before and after, plus a check that distinct failures still land in distinct issues.

## Prompt

Copy this to an agent to open the ticket:

```text
Create a Linear issue in my team and assign it to the SHIP agent.

Title: Fix the fingerprint for {error}

Description: Correct the fingerprinting for an error that groups into hundreds of separate issues.

Acceptance criteria:
- The error groups into a single issue
- Variable data moves from the message into structured context
- Issue counts before and after are recorded
- No genuinely distinct error is merged in the process

Before you create the issue, find the error in this repository's tracker with the most near-identical issues and replace {error} with it.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: correct the fingerprinting for an error that groups into hundreds of separate issues. Work that serves that outcome is in scope, and anything outside it is left for a separate ticket, so the pull request stays reviewable.

### How do I know the work is done?

The pull request carries the evidence, not only the diff. Here that means one issue instead of hundreds, counts captured before and after, so a reviewer can confirm the result without reproducing the work locally.

### How much oversight does this need?

The run stops once the plan is written. Somebody reads the approach and approves it before any code exists, which is the cheapest moment to redirect the work.
