issue
Manage Sentry issues
Commands
Section titled “Commands”sentry issue list [<org/project>]
Section titled “sentry issue list [<org/project>]”List issues in a project
Arguments:
| Argument | Description |
|---|---|
[<org/project>] |
<org>/ (all projects), <org>/<project>, or <project> (search) |
Options:
| Option | Description |
|---|---|
-q, --query <query> |
Search query (Sentry syntax, implicit AND; same-key OR becomes an in-list) |
-n, --limit <limit> |
Maximum number of issues to list (default: "25") |
-s, --sort <sort> |
Sort by: recommended, date, new, freq, user (default: recommended on sentry.io, else date) |
-t, --period <period> |
Time range: "7d", "2024-01-01..2024-02-01", ">=2024-01-01" (default: "90d") |
-c, --cursor <cursor> |
Pagination cursor (use "next" for next page, "prev" for previous) |
--compact |
Single-line rows for compact output (auto-detects if omitted) |
-f, --fresh |
Bypass cache, re-detect projects, and fetch fresh data |
Examples:
# List issues (project auto-detected)sentry issue list
# List issues in a specific projectsentry issue list my-org/frontend
# Several projects in the same organizationsentry issue list my-org/frontend,backend,worker
# All projects in an organizationsentry issue list my-org/
# Search for a project across organizationssentry issue list frontend
# Show only unresolved issuessentry issue list my-org/frontend --query "is:unresolved"
# Sort by frequencysentry issue list my-org/frontend --sort freq --limit 20
# Sort by Sentry's recommended relevance rankingsentry issue list my-org/frontend --sort recommended
# Multiple filters (space-separated terms are combined with AND)sentry issue list --query "is:unresolved level:error assigned:me"
# Negation and wildcardssentry issue list --query "!browser:Chrome message:*timeout*"
# Match multiple values for one keysentry issue list --query "browser:[Chrome,Firefox]"sentry issue events <issue>
Section titled “sentry issue events <issue>”List events for a specific issue
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
Options:
| Option | Description |
|---|---|
-n, --limit <limit> |
Number of events (1-1000) (default: "25") |
-q, --query <query> |
Search query (Sentry search syntax) |
--full |
Include full event body (stacktraces) |
-t, --period <period> |
Time range: "7d", "2024-01-01..2024-02-01", ">=2024-01-01" (default: "7d") |
-f, --fresh |
Bypass cache, re-detect projects, and fetch fresh data |
-c, --cursor <cursor> |
Navigate pages: "next", "prev", "first" (or raw cursor string) |
Examples:
# List recent events for an issuesentry issue events FRONT-ABC
# List events for the most recent issuesentry issue events @latest --limit 50
# Filter events by search querysentry issue events FRONT-ABC --query "browser:Chrome"
# Show full event detailssentry issue events FRONT-ABC --full
# Limit results and filter by time periodsentry issue events FRONT-ABC --limit 50 --period 24h
# Fetch the next pagesentry issue events FRONT-ABC -c next
# Output as JSONsentry issue events FRONT-ABC --jsonsentry issue tags <issue> <key>
Section titled “sentry issue tags <issue> <key>”Show the top values of an issue tag
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
<key> |
Tag key, e.g. release, server_name, browser.name |
Options:
| Option | Description |
|---|---|
-e, --environment <environment> |
Filter to one environment (default: all environments) |
-f, --fresh |
Bypass cache, re-detect projects, and fetch fresh data |
Examples:
# Show which releases concentrate an issue's eventssentry issue tags my-org/FRONT-ABC release
# Inspect server distribution for the latest issue in productionsentry issue tags @latest server_name --environment production
# Get browser counts and timestamps as JSONsentry issue tags FRONT-ABC browser.name --json
# Select the aggregate fields for a release distributionsentry issue tags FRONT-ABC release --json --fields key,totalValues,topValuessentry issue explain <issue...>
Section titled “sentry issue explain <issue...>”Analyze one or more issues using Seer AI
Arguments:
| Argument | Description |
|---|---|
<issue...> |
One or more issue IDs |
Options:
| Option | Description |
|---|---|
--force |
Force new analysis even if one exists |
-f, --fresh |
Bypass cache, re-detect projects, and fetch fresh data |
Examples:
# Analyze the root cause of an issue (may take a few minutes for new issues)sentry issue explain 123456789
# Explain the most recent issuesentry issue explain @latest
# Explain the most frequently occurring issuesentry issue explain @most_frequent
# Use a short ID with an organization prefixsentry issue explain my-org/MYPROJECT-ABC
# Analyze multiple issues in one invocationsentry issue explain FRONT-ABC BACK-2
# Force a fresh analysissentry issue explain 123456789 --force
# Output root causes as JSONsentry issue explain 123456789 --jsonsentry issue plan <issue>
Section titled “sentry issue plan <issue>”Generate a solution plan using Seer AI
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
Options:
| Option | Description |
|---|---|
--force |
Force new plan even if one exists |
-f, --fresh |
Bypass cache, re-detect projects, and fetch fresh data |
Examples:
# Generate a fix plan (runs explain first if needed)sentry issue plan 123456789
# Generate a fix plan for the most recent issuesentry issue plan @latest
# Use a short ID with an organization prefixsentry issue plan my-org/MYPROJECT-ABC
# Force a fresh plan even if one already existssentry issue plan 123456789 --forcesentry issue view <issue...>
Section titled “sentry issue view <issue...>”View details of one or more issues
Arguments:
| Argument | Description |
|---|---|
<issue...> |
One or more issue IDs |
Options:
| Option | Description |
|---|---|
-w, --web |
Open in browser |
--force |
Allow --web to open more than 5 issues |
--spans <spans> |
Span tree depth limit (number, "all" for unlimited, "no" to disable) (default: "3") |
-f, --fresh |
Bypass cache, re-detect projects, and fetch fresh data |
Examples:
# View an issuesentry issue view FRONT-ABC
# View the most recent issuesentry issue view @latest
# View several issues (space-separated, not commas)sentry issue view FRONT-ABC BACK-2
# Select an organization explicitlysentry issue view my-org/FRONT-ABC
# Use a GitHub-style identifier (the "#" replaces the final slash)sentry issue view my-org/my-project#FRONT-ABC
# Open issues in the browser (up to 5 tabs by default)sentry issue view FRONT-ABC BACK-2 -w
# Allow more than 5 browser tabssentry issue view FRONT-ABC BACK-2 API-3 WEB-4 IOS-5 OPS-6 -w --force
# Full JSON (issue fields + latest event + trace/replay context)sentry issue view FRONT-ABC --json
# Select top-level fields to keep output smallsentry issue view FRONT-ABC --json --fields shortId,title,culprit,count,userCount,permalink
# Select fields from the latest event instead of the whole eventsentry issue view FRONT-ABC --json --fields event.id,event.title,event.dateCreated
# Extract the request URL and method from the latest eventsentry issue view FRONT-ABC --json | jq '.event.entries[] | select(.type == "request") | .data | {url, method}'
# Extract the exception type and value from the latest eventsentry issue view FRONT-ABC --json | jq '.event.entries[] | select(.type == "exception") | .data.values[0] | {type, value}'sentry issue resolve <issue>
Section titled “sentry issue resolve <issue>”Mark an issue as resolved
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
Options:
| Option | Description |
|---|---|
-i, --in <in> |
Resolve in a release, next release, or commit (' |
Examples:
# Resolve immediately (no regression tracking)sentry issue resolve CLI-G5
# Resolve in a specific release (newer releases flag regressions)sentry issue resolve CLI-G5 --in 0.26.1
# Monorepo-style release versions work toosentry issue resolve CLI-G5 --in spotlight@1.2.3
# Resolve in the next releasesentry issue resolve CLI-G5 --in @next
# Resolve in the current git HEAD (auto-detects the Sentry repo from your origin remote)sentry issue resolve CLI-G5 --in @commit
# Resolve in an explicit commit and repo (no git inspection)sentry issue resolve CLI-G5 --in @commit:getsentry/cli@abc123def
# Resolve an issue in an explicit organizationsentry issue resolve my-org/CLI-G5sentry issue unresolve <issue>
Section titled “sentry issue unresolve <issue>”Reopen a resolved issue
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
Examples:
# Reopen a resolved issuesentry issue unresolve CLI-G5
# `reopen` is an alias for `unresolve`sentry issue reopen CLI-G5
# Reopen an issue in an explicit organizationsentry issue unresolve my-org/CLI-G5sentry issue archive <issue>
Section titled “sentry issue archive <issue>”Archive (ignore) an issue
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
Options:
| Option | Description |
|---|---|
-u, --until <until> |
Condition for unarchival: forever, auto, 30m, 10x, 10u, 10x/5m, etc. |
Examples:
# Archive forever (fully silenced)sentry issue archive CLI-G5
# Unarchive when Sentry detects a spike in event frequencysentry issue archive CLI-G5 --until auto
# Archive for 1 hoursentry issue archive CLI-G5 --until 1h
# Archive for 7 dayssentry issue archive CLI-G5 --until 7d
# Archive until a specific datesentry issue archive CLI-G5 --until 2026-12-31
# Unarchive after 100 more eventssentry issue archive CLI-G5 --until 100x
# Unarchive after 10 more users are affectedsentry issue archive CLI-G5 --until 10u
# Unarchive after 100 events within 1 hoursentry issue archive CLI-G5 --until 100x/1h
# Unarchive after 10 users within 1 daysentry issue archive CLI-G5 --until 10u/1d
# Use the verbose condition formsentry issue archive CLI-G5 --until 10events/2hours
# `ignore` is an alias for `archive`sentry issue ignore CLI-G5 --until autosentry issue merge <issue...>
Section titled “sentry issue merge <issue...>”Merge 2+ issues into a single canonical group
Arguments:
| Argument | Description |
|---|---|
<issue...> |
Issue IDs to merge (2 or more required) |
Options:
| Option | Description |
|---|---|
-i, --into <into> |
Prefer this issue as the canonical parent (included in the merge if not already listed) |
Examples:
# Let Sentry pick the parent (typically the largest by event count)sentry issue merge CLI-K9 CLI-15H CLI-15N
# Pin the canonical parent explicitlysentry issue merge CLI-K9 CLI-15H CLI-15N --into CLI-K9
# Use organization-qualified IDssentry issue merge my-org/CLI-K9 my-org/CLI-15H --into my-org/CLI-K9
# Use project-alias IDssentry issue merge cli-k9 cli-15h --into cli-k9sentry issue link <issue> <url>
Section titled “sentry issue link <issue> <url>”Link an existing external issue
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
<url> |
URL of an existing tracker issue or GitHub pull request |
Options:
| Option | Description |
|---|---|
--integration <integration> |
Native integration ID, when multiple installations match |
--app <app> |
Sentry App slug (automatically detected for Linear URLs) |
-n, --dry-run |
Show what would happen without making changes |
--field <field>... |
Additional Sentry App link form field (name=value, repeatable) |
Examples:
# Link a GitHub issuesentry issue link FRONT-123 https://github.com/example/app/issues/42
# Link a GitHub pull requestsentry issue link FRONT-123 https://github.com/example/app/pull/43
# Link a Jira issue in an explicit organizationsentry issue link my-org/FRONT-123 https://example.atlassian.net/browse/APP-42
# Link a Linear issuesentry issue link FRONT-123 https://linear.app/example/issue/APP-42/fix-error
# Prepare the link without submitting itsentry issue link my-org/FRONT-123 https://github.com/example/app/issues/42 --dry-run
# Output the result as JSONsentry issue link my-org/FRONT-123 https://github.com/example/app/issues/42 --jsonsentry issue unlink <issue> <url>
Section titled “sentry issue unlink <issue> <url>”Unlink an external issue
Arguments:
| Argument | Description |
|---|---|
<issue> |
Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix |
<url> |
URL of an existing tracker issue or GitHub pull request |
Options:
| Option | Description |
|---|---|
--integration <integration> |
Native integration ID, when multiple installations match |
--app <app> |
Sentry App slug (automatically detected for Linear URLs) |
-y, --yes |
Skip confirmation prompt |
-f, --force |
Force the operation without confirmation |
-n, --dry-run |
Show what would happen without making changes |
Examples:
# Unlink a GitHub issue (prompts for confirmation)sentry issue unlink FRONT-123 https://github.com/example/app/issues/42
# Unlink a GitHub pull request without promptingsentry issue unlink FRONT-123 https://github.com/example/app/pull/43 --yes
# Unlink a Jira issue in an explicit organizationsentry issue unlink my-org/FRONT-123 https://example.atlassian.net/browse/APP-42 --yes
# Check whether a link exists without removing itsentry issue unlink FRONT-123 https://linear.app/example/issue/APP-42/fix-error --dry-runAll commands support --json for machine-readable output and --fields to select specific JSON fields.
Context recovery
Section titled “Context recovery”If auto-detection cannot find a project and your account can reach exactly one
organization, issue list lists that organization's issues, the same as
sentry issue list <org>/.
With several organizations, authenticated non-interactive runs show
one copyable retry example and compact lists of other available organizations
and org/project targets. Choose the project that matches your task; the retry
keeps your query, period, limit, sort, and output flags. Navigation keywords such as --cursor next
become --cursor first because the chosen project may have no saved pagination state;
raw API cursors are preserved. Suggestions are a bounded sample, with one
sentry project list example to discover other projects. Showing suggestions
does not save defaults.
Search syntax
Section titled “Search syntax”Magic selectors
Section titled “Magic selectors”Use @latest and @most_frequent to target issues without knowing their ID.
Common mistakes
Section titled “Common mistakes”- Don't use the issue command name as an issue prefix —
sentry issue explain issue-1is parsed as projectissue+ suffix1. Use a real project prefix:sentry issue explain FRONT-1or a numeric ID:sentry issue explain 123456789. - Issue short IDs use uppercase prefixes —
CLI-G, notcli-g. The CLI tolerates lowercase input in most commands, but agents should prefer the canonical form. org/projecttargets use slugs, not numeric IDs —sentry issue list my-org/6775615880fails when6775615880is a project ID copied from a URL. Runsentry project list my-org/to find the slug (e.g.frontend).- Prefer auto-detect over guessing slugs — omit the target when possible; the CLI resolves org/project from DSNs,
.envfiles, and your working directory.
Inspect tag distributions
Section titled “Inspect tag distributions”After opening an issue, compare which releases, servers, or browsers account for
its events. issue view shows tags on the latest event; issue tags aggregates
across the issue's retained events.
The result contains up to 9 top values, ordered by count. Human output shows each value's count and percentage of all retained events, including events with a missing value. Any remainder appears as "Other values (not shown)"; percentages are never calculated from just the displayed rows. Retention limits apply, so this total can differ from the issue's lifetime event count.
--environment selects one environment; omitting it includes all environments.
This aggregate does not support --period, --query, --limit, or cursor
pagination. Use issue events when you need filtered event records. For example,
after identifying a release, inspect recent events with
sentry issue events FRONT-ABC --query 'release:1.2.3' --period 7d.
JSON preserves key, name, totalValues, and topValues, including counts and
first/last seen timestamps. Values and counts may be null; missing data is not
zero. --fields selects top-level fields. To discover tag keys, inspect the
latest event with sentry issue view <issue>; it may not contain every tag used
by earlier events. A tag with no retained values, or an unknown environment,
can return a not-found error.
Short IDs and organizations
Section titled “Short IDs and organizations”Full short IDs such as FRONT-ABC use your configured organization: SENTRY_ORG,
then .sentryclirc, then the default set with sentry cli defaults org. The lookup
stays within that organization. To select another organization, include it
explicitly, as in sentry issue view my-org/FRONT-ABC.
Project aliases such as f-abc keep the organization associated with the alias.
Without a configured organization, the CLI uses a matching detected project or
searches your accessible organizations. If the short ID matches in multiple
organizations, specify the organization explicitly.
JSON output
Section titled “JSON output”--json returns the issue fields at the top level plus the latest event under
event, the resolved org slug, related replayIds, and trace context.
Prefer this over the human output when parsing programmatically. One issue ID
still returns a single object; multiple IDs return an array of those objects.
In the --json output, the latest event's data lives under
event.entries[], each tagged with a type ("exception", "request",
"breadcrumbs", …) and a data payload — not as top-level event.request /
event.exception keys.
With --json, one explained issue preserves the existing array of root causes.
Multiple issues return an array of labeled objects containing issue, org,
issueId, and rootCauses.
Seer AI plans
Section titled “Seer AI plans”sentry issue plan generates a fix plan and runs root cause analysis first if
needed.
Requirements:
- Seer AI enabled for your organization
- GitHub integration configured with repository access
- Code mappings set up to link stack frames to source files
- Root cause analysis is run automatically if needed (the
plancommand triggersexplainfirst)
Resolving in a release
Section titled “Resolving in a release”Merging issues
Section titled “Merging issues”Consolidate multiple issues (e.g. same logical error split by Sentry's
default stack-trace grouping) into a single canonical group with
sentry issue merge. Without --into, Sentry picks the parent (typically
the largest by event count).
All merged issues must share an organization; cross-org merges are rejected. Non-error issue types (performance, info, etc.) cannot be merged.
Archiving issues
Section titled “Archiving issues”Archive an issue to suppress alerts. Without --until, the issue is archived
forever. Use --until to set a condition for automatic unarchival.