--- name: sentry-cli-issue version: 0.33.0 description: Manage Sentry issues requires: bins: ["sentry"] auth: true --- # Issue Commands Manage Sentry issues ### `sentry issue list ` List issues in a project **Flags:** - `-q, --query - Search query (Sentry syntax, implicit AND, no OR operator)` - `-n, --limit - Maximum number of issues to list - (default: "25")` - `-s, --sort - Sort by: date, new, freq, user - (default: "date")` - `-t, --period - Time range: "7d", "2026-04-01..2026-05-01", ">=2026-04-01" - (default: "90d")` - `-c, --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` **JSON Fields** (use `--json --fields` to select specific fields): | Field | Type | Description | |-------|------|-------------| | `id` | string | Numeric issue ID | | `shortId` | string | Human-readable short ID (e.g. PROJ-ABC) | | `title` | string | Issue title | | `culprit` | string | Culprit string | | `count` | string | Total event count | | `userCount` | number | Number of affected users | | `firstSeen` | string | First occurrence (ISO 8601) | | `lastSeen` | string | Most recent occurrence (ISO 8601) | | `level` | string | Severity level | | `status` | string | Issue status | | `permalink` | string | URL to the issue in Sentry | | `project` | object | Project info | | `metadata` | object | Issue metadata | | `assignedTo` | object \| null | Assigned user or team | | `priority` | string | Triage priority | | `platform` | string | Platform | | `substatus` | string \| null | Issue substatus | | `isUnhandled` | boolean | Whether the issue is unhandled | | `seerFixabilityScore` | number \| null | Seer AI fixability score (0-1) | **Examples:** ```bash # List issues in a specific project sentry issue list my-org/frontend # All projects in an org 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" # Show resolved issues sentry issue list my-org/frontend --query "is:resolved" # Sort by frequency sentry issue list my-org/frontend --sort freq --limit 20 # Multiple filters (space-separated = implicit 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 (in-list syntax) sentry issue list --query "browser:[Chrome,Firefox]" ``` ### `sentry issue events ` List events for a specific issue **Flags:** - `-n, --limit - Number of events (1-1000) - (default: "25")` - `-q, --query - Search query (Sentry search syntax)` - `--full - Include full event body (stacktraces)` - `-t, --period - Time range: "7d", "2026-04-01..2026-05-01", ">=2026-04-01" - (default: "7d")` - `-f, --fresh - Bypass cache, re-detect projects, and fetch fresh data` - `-c, --cursor - Navigate pages: "next", "prev", "first" (or raw cursor string)` **JSON Fields** (use `--json --fields` to select specific fields): | Field | Type | Description | |-------|------|-------------| | `id` | string | Internal event ID | | `event.type` | string | Event type (error, default, transaction) | | `groupID` | string \| null | Group (issue) ID | | `eventID` | string | UUID-format event ID | | `projectID` | string | Project ID | | `message` | string | Event message | | `title` | string | Event title | | `location` | string \| null | Source location (file:line) | | `culprit` | string \| null | Culprit function/module | | `user` | object \| null | User context | | `tags` | array | Event tags | | `platform` | string \| null | Platform (python, javascript, etc.) | | `dateCreated` | string | ISO 8601 creation timestamp | | `crashFile` | string \| null | Crash file URL | | `metadata` | object \| null | Event metadata | ### `sentry issue explain ` Analyze an issue's root cause using Seer AI **Flags:** - `--force - Force new analysis even if one exists` - `-f, --fresh - Bypass cache, re-detect projects, and fetch fresh data` **Examples:** ```bash # Analyze root cause (may take a few minutes for new issues) sentry issue explain 123456789 # By short ID with org prefix sentry issue explain my-org/MYPROJECT-ABC # Force a fresh analysis sentry issue explain 123456789 --force # Generate a fix plan (requires explain to be run first) sentry issue plan 123456789 # Specify which root cause to plan for sentry issue plan 123456789 --cause 0 ``` ### `sentry issue plan ` Generate a solution plan using Seer AI **Flags:** - `--cause - Root cause ID to plan (required if multiple causes exist)` - `--force - Force new plan even if one exists` - `-f, --fresh - Bypass cache, re-detect projects, and fetch fresh data` ### `sentry issue view ` View details of a specific issue **Flags:** - `-w, --web - Open in browser` - `--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:** ```bash sentry issue view FRONT-ABC # Open in browser sentry issue view FRONT-ABC -w ``` ### `sentry issue resolve ` Mark an issue as resolved **Flags:** - `-i, --in - Resolve in a release, next release, or commit ('' | '@next' | '@commit' | '@commit:@')` **Examples:** ```bash # Resolve immediately (no regression tracking) sentry issue resolve CLI-G5 # Resolve in a specific release — future events on newer releases are # regression-flagged sentry issue resolve CLI-G5 --in 0.26.1 # Monorepo-style releases work too (no special parsing) sentry issue resolve CLI-G5 --in spotlight@1.2.3 # Resolve in the next release (tied to current HEAD) sentry issue resolve CLI-G5 --in @next sentry issue resolve CLI-G5 -i @next # Resolve in the current git HEAD — auto-detects the Sentry repo from # your git origin remote (hard-errors if it can't) sentry issue resolve CLI-G5 --in @commit # Explicit commit + repo (no git inspection; repo must be registered in Sentry) sentry issue resolve CLI-G5 --in @commit:getsentry/cli@abc123def # Reopen a resolved issue sentry issue unresolve CLI-G5 sentry issue reopen CLI-G5 # alias ``` ### `sentry issue unresolve ` Reopen a resolved issue ### `sentry issue archive ` Archive (ignore) an issue **Flags:** - `-u, --until - Condition for unarchival: forever, auto, 30m, 10x, 10u, 10x/5m, etc.` **Examples:** ```bash # Archive forever (fully silenced) sentry issue archive CLI-G5 # Smart detection — unarchives when Sentry detects a spike in event frequency sentry issue archive CLI-G5 --until auto # Duration-based sentry issue archive CLI-G5 --until 1h # 1 hour sentry issue archive CLI-G5 --until 7d # 7 days sentry issue archive CLI-G5 --until 2026-12-31 # specific date # Count-based — unarchive after N more events sentry issue archive CLI-G5 --until 100x # User-based — unarchive after N more users affected sentry issue archive CLI-G5 --until 10u # Compound — count within a time window sentry issue archive CLI-G5 --until 100x/1h # 100 events within 1 hour sentry issue archive CLI-G5 --until 10u/1d # 10 users within 1 day # Verbose forms also work sentry issue archive CLI-G5 --until 10events/2hours # 'ignore' is an alias for 'archive' sentry issue ignore CLI-G5 --until auto ``` ### `sentry issue merge ` Merge 2+ issues into a single canonical group **Flags:** - `-i, --into - Prefer this issue as the canonical parent (must match one of the provided IDs)` **Examples:** ```bash # Let Sentry auto-pick the parent (typically the largest by event count) sentry issue merge CLI-K9 CLI-15H CLI-15N # Pin the canonical parent explicitly — accepts the same formats as # positional args, including org-qualified and project-alias forms sentry issue merge CLI-K9 CLI-15H CLI-15N --into CLI-K9 sentry issue merge my-org/CLI-K9 my-org/CLI-15H --into my-org/CLI-K9 sentry issue merge cli-k9 cli-15h --into cli-k9 # alias form # Cross-org merges are rejected — all issues must share an organization # Non-error issue types (performance, info, etc.) cannot be merged ``` All commands also support `--json`, `--fields`, `--help`, `--log-level`, and `--verbose` flags.