Skip to content
DocsGitHub

issue

Manage Sentry issues

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:

Terminal window
# List issues (project auto-detected)
sentry issue list
# List issues in a specific project
sentry issue list my-org/frontend
# Several projects in the same organization
sentry issue list my-org/frontend,backend,worker
# All projects in an organization
sentry issue list my-org/
# Search for a project across organizations
sentry issue list frontend
# Show only unresolved issues
sentry issue list my-org/frontend --query "is:unresolved"
# Sort by frequency
sentry issue list my-org/frontend --sort freq --limit 20
# Sort by Sentry's recommended relevance ranking
sentry 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 wildcards
sentry issue list --query "!browser:Chrome message:*timeout*"
# Match multiple values for one key
sentry issue list --query "browser:[Chrome,Firefox]"

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:

Terminal window
# List recent events for an issue
sentry issue events FRONT-ABC
# List events for the most recent issue
sentry issue events @latest --limit 50
# Filter events by search query
sentry issue events FRONT-ABC --query "browser:Chrome"
# Show full event details
sentry issue events FRONT-ABC --full
# Limit results and filter by time period
sentry issue events FRONT-ABC --limit 50 --period 24h
# Fetch the next page
sentry issue events FRONT-ABC -c next
# Output as JSON
sentry issue events FRONT-ABC --json

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:

Terminal window
# Show which releases concentrate an issue's events
sentry issue tags my-org/FRONT-ABC release
# Inspect server distribution for the latest issue in production
sentry issue tags @latest server_name --environment production
# Get browser counts and timestamps as JSON
sentry issue tags FRONT-ABC browser.name --json
# Select the aggregate fields for a release distribution
sentry issue tags FRONT-ABC release --json --fields key,totalValues,topValues

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:

Terminal window
# Analyze the root cause of an issue (may take a few minutes for new issues)
sentry issue explain 123456789
# Explain the most recent issue
sentry issue explain @latest
# Explain the most frequently occurring issue
sentry issue explain @most_frequent
# Use a short ID with an organization prefix
sentry issue explain my-org/MYPROJECT-ABC
# Analyze multiple issues in one invocation
sentry issue explain FRONT-ABC BACK-2
# Force a fresh analysis
sentry issue explain 123456789 --force
# Output root causes as JSON
sentry issue explain 123456789 --json

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:

Terminal window
# Generate a fix plan (runs explain first if needed)
sentry issue plan 123456789
# Generate a fix plan for the most recent issue
sentry issue plan @latest
# Use a short ID with an organization prefix
sentry issue plan my-org/MYPROJECT-ABC
# Force a fresh plan even if one already exists
sentry issue plan 123456789 --force

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:

Terminal window
# View an issue
sentry issue view FRONT-ABC
# View the most recent issue
sentry issue view @latest
# View several issues (space-separated, not commas)
sentry issue view FRONT-ABC BACK-2
# Select an organization explicitly
sentry 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 tabs
sentry 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 small
sentry issue view FRONT-ABC --json --fields shortId,title,culprit,count,userCount,permalink
# Select fields from the latest event instead of the whole event
sentry issue view FRONT-ABC --json --fields event.id,event.title,event.dateCreated
# Extract the request URL and method from the latest event
sentry issue view FRONT-ABC --json | jq '.event.entries[] | select(.type == "request") | .data | {url, method}'
# Extract the exception type and value from the latest event
sentry issue view FRONT-ABC --json | jq '.event.entries[] | select(.type == "exception") | .data.values[0] | {type, value}'

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:

Terminal window
# 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 too
sentry issue resolve CLI-G5 --in spotlight@1.2.3
# Resolve in the next release
sentry 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 organization
sentry issue resolve my-org/CLI-G5

Reopen a resolved issue

Arguments:

Argument Description
<issue> Issue: @latest, @most_frequent, <org>/ID, <org>/<project>#ID, <project>-suffix, ID, or suffix

Examples:

Terminal window
# Reopen a resolved issue
sentry issue unresolve CLI-G5
# `reopen` is an alias for `unresolve`
sentry issue reopen CLI-G5
# Reopen an issue in an explicit organization
sentry issue unresolve my-org/CLI-G5

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:

Terminal window
# Archive forever (fully silenced)
sentry issue archive CLI-G5
# Unarchive when Sentry detects a spike in event frequency
sentry issue archive CLI-G5 --until auto
# Archive for 1 hour
sentry issue archive CLI-G5 --until 1h
# Archive for 7 days
sentry issue archive CLI-G5 --until 7d
# Archive until a specific date
sentry issue archive CLI-G5 --until 2026-12-31
# Unarchive after 100 more events
sentry issue archive CLI-G5 --until 100x
# Unarchive after 10 more users are affected
sentry issue archive CLI-G5 --until 10u
# Unarchive after 100 events within 1 hour
sentry issue archive CLI-G5 --until 100x/1h
# Unarchive after 10 users within 1 day
sentry issue archive CLI-G5 --until 10u/1d
# Use the verbose condition form
sentry issue archive CLI-G5 --until 10events/2hours
# `ignore` is an alias for `archive`
sentry issue ignore CLI-G5 --until auto

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:

Terminal window
# Let Sentry pick the parent (typically the largest by event count)
sentry issue merge CLI-K9 CLI-15H CLI-15N
# Pin the canonical parent explicitly
sentry issue merge CLI-K9 CLI-15H CLI-15N --into CLI-K9
# Use organization-qualified IDs
sentry issue merge my-org/CLI-K9 my-org/CLI-15H --into my-org/CLI-K9
# Use project-alias IDs
sentry issue merge cli-k9 cli-15h --into cli-k9

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:

Terminal window
# Link a GitHub issue
sentry issue link FRONT-123 https://github.com/example/app/issues/42
# Link a GitHub pull request
sentry issue link FRONT-123 https://github.com/example/app/pull/43
# Link a Jira issue in an explicit organization
sentry issue link my-org/FRONT-123 https://example.atlassian.net/browse/APP-42
# Link a Linear issue
sentry issue link FRONT-123 https://linear.app/example/issue/APP-42/fix-error
# Prepare the link without submitting it
sentry issue link my-org/FRONT-123 https://github.com/example/app/issues/42 --dry-run
# Output the result as JSON
sentry issue link my-org/FRONT-123 https://github.com/example/app/issues/42 --json

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:

Terminal window
# 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 prompting
sentry issue unlink FRONT-123 https://github.com/example/app/pull/43 --yes
# Unlink a Jira issue in an explicit organization
sentry issue unlink my-org/FRONT-123 https://example.atlassian.net/browse/APP-42 --yes
# Check whether a link exists without removing it
sentry issue unlink FRONT-123 https://linear.app/example/issue/APP-42/fix-error --dry-run

All commands support --json for machine-readable output and --fields to select specific JSON fields.

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.

Use @latest and @most_frequent to target issues without knowing their ID.

  • Don't use the issue command name as an issue prefix — sentry issue explain issue-1 is parsed as project issue + suffix 1. Use a real project prefix: sentry issue explain FRONT-1 or a numeric ID: sentry issue explain 123456789.
  • Issue short IDs use uppercase prefixes — CLI-G, not cli-g. The CLI tolerates lowercase input in most commands, but agents should prefer the canonical form.
  • org/project targets use slugs, not numeric IDs — sentry issue list my-org/6775615880 fails when 6775615880 is a project ID copied from a URL. Run sentry 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, .env files, and your working directory.

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.

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 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.

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 plan command triggers explain first)

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.

Archive an issue to suppress alerts. Without --until, the issue is archived forever. Use --until to set a condition for automatic unarchival.