# Work with issues

> Lampwick groups exceptions into issues by class, code, file and line. Resolve, ignore or reopen them; a resolved issue reopens when it happens again.

An issue is one kind of exception in your app: Lampwick groups every occurrence by class, code, file and line, so a thousand identical errors are one row with a count.

## Requirements

- A project that receives exceptions, from the [Laravel package](/docs/laravel/) or [HTTP ingest](/docs/http-ingest/).
- Over HTTP ingest, an `exception` record needs a `_group` key; records with the same `_group` are one issue.

## Find an issue

1. Open the project and go to **Issues** in the sidebar.
2. Pick a tab: **Open**, **Resolved**, **Ignored** or **All**.
3. Optional: search by class, message or file (<kbd>/</kbd>) and pick a time range.

Each row shows the issue number (`#12`), class, message, file and line, an **Unhandled** badge when nothing caught it, the count in the range, users affected, the total, and last and first seen.

## Read an issue

The issue's page has the stack trace with source code, the occurrences chart, the users affected, **Recent occurrences**, and the context of one occurrence: **Server**, **Deploy**, **User** and **During** (the request or job, linked to its timeline).

## Resolve, ignore or reopen

On the issue's page, or with <kbd>⌘</kbd> <kbd>K</kbd> → **Resolve issue**, **Ignore issue** or **Reopen issue**:

| Status | What happens on a new occurrence |
|---|---|
| Open | It counts. |
| Resolved | The issue reopens, and the team gets a push notification about the regression. |
| Ignored | It counts, but the issue stays ignored and sends nothing. |

In the API: `updateIssue` with `{"status": "resolved"}`, `"ignored"` or `"open"`.

## Notifications

The project's team gets a push notification in the Lampwick iOS app for every new issue and every resolved issue that comes back. Issues send no e-mail; e-mail goes with the other [alerts](/docs/alerts/).

## Retention

Occurrences follow the retention of your other records. The issue itself is deleted 90 days after it was last seen, or after the retention when that is longer.

## Troubleshooting

| What you see | Cause and fix |
|---|---|
| An exception sent over HTTP doesn't show under **Issues** | The record has no `_group`. Add one, for example a hash of the class, file and line. |
| One error shows up as several issues | The class, code, file or line differs between them, for example after a deploy moved the line. |
| An ignored issue still counts up | Ignoring stops notifications, not counting. |

To let an AI agent read and resolve issues for you, [connect it to the MCP server](/docs/mcp/).
