Error Autopilot for Jira

Sentry alerts become Jira issues automatically, and stay in sync, without upgrading Sentry to Business.

Overview

Sentry only creates Jira issues automatically on its Business and Enterprise plans. Error Autopilot fills that gap for Team-plan organisations (and self-hosted Sentry): when a Sentry alert rule fires, a Jira issue is created with the stack trace, environment, release, culprit and a link back. When the error is resolved or regresses in Sentry, the Jira issue follows.

A Jira issue created by Error Autopilot with stack trace and Sentry panel
FeatureWhat it does
Automatic issuesOne Jira issue per Sentry issue, created when an alert rule with the Error Autopilot action fires (or for every new Sentry issue, if you choose).
No duplicatesRepeat alerts become at most one comment per issue per window (default 6 h). Duplicate deliveries are ignored; links survive reinstalls.
SyncResolved in Sentry → comment or move to Done. Regressed → comment or reopen.
EscalationAfter N regressions (default 2), raise priority (default Highest) and add a label (default recurring).
Storm guardAbove N new issues per hour (default 20), further new errors are listed on one "Error storm" issue instead of creating hundreds.
Noise controlMinimum level, environment filter, mute list.
FieldsRouting per Sentry project or alert rule, priority by level, due dates by priority, labels (incl. env-production), summary template, assignee follows Sentry.
Issue panel & JQLA Sentry panel on linked issues, and JQL fields such as sentryStatus and sentryRegressions.
Other toolsGlitchTip and any tool that can POST JSON, via a token-protected URL.

Install & connect Sentry

You need to be a Jira administrator and a Sentry Manager or Owner (to create an internal integration). Takes about 5 minutes.
  1. Install Error Autopilot from the Atlassian Marketplace, then open Jira settings → Apps → Error Autopilot.
  2. On the Connect tab, copy the Webhook URL.
  3. In Sentry go to Settings → Integrations → Custom Integrations → Create New Integration → Internal Integration.
    • Name: Error Autopilot
    • Webhook URL: paste the URL from step 2.
    • Turn on Alert Rule Action.
    • Permissions: set Issue & Event to Read first. Sentry only lets you tick the issue webhook after that.
    • Webhooks: tick issue. Save.
  4. Copy the integration's Client Secret, paste it into Error Autopilot's Sentry client secret field and click Save.
  5. On the Routing tab, enter your Default Jira space key (e.g. WEB) and save.
  6. In Sentry, open an alert (or create one, e.g. "A new issue is created") and add the action Webhook → Error Autopilot.
  7. Back in Jira, click Send a test error on the Connect tab. You should see "Test passed: created WEB-1".

Routing & fields

SettingDefaultNotes
Default Jira space keynoneUsed when no routing line matches. Without it, nothing is created.
RoutingemptyOne per line: sentry-project-slug=KEY, 4508812345=KEY (project ID), project name, or alert rule name. Alert payloads carry the numeric project ID, not the slug.
Issue typeBugMust exist in the target space.
Summary templateemptyPlaceholders: {title} {shortId} {project} {level} {environment} {culprit} {release}. Empty = "[SHORT-ID] title".
LabelssentryComma separated. Optional env-<environment> label.
Stack traceonTop in-app frames from the alert's event.
Priority by levelfatal=Highest, error=High, warning=MediumUse your Jira priority names. If a space doesn't allow priority, the field is skipped and the issue is still created.
Due dates by priorityemptye.g. Highest=1. Skipped automatically if the field isn't on the create screen.
AssigneeOff"Follow Sentry assignments" matches the Sentry assignee's email to exactly one Jira user; otherwise it leaves the assignee alone.

Rules

SettingDefaultNotes
Create Jira issuesOnly when an alert rule fires"Every new Sentry issue" creates one for each new Sentry issue (noisier).
Minimum levelerror
Only these environmentsalle.g. production
MuteemptyErrors whose title or culprit contains a line are never ticketed.
Storm guard20 per hour0 turns it off.
Repeat alerts1 comment per 6 h
When resolved / regressescommentOr transition to Done / reopen (uses your workflow's status categories).
Escalate after2 regressionsPriority + label, once per issue. 0 turns it off.

Issue panel & JQL

Issues created by Error Autopilot show a Sentry panel (status, level, environment, release, events, users, alerts received, regressions, first seen, last alert, link). The same data is indexed for JQL:

sentryStatus = regressed
sentryRegressions >= 2 ORDER BY priority DESC
sentryEnvironment = production AND sentryStatus = unresolved
sentryRelease = "shop@4.12.0"
sentryEvents > 100

Fields: sentryStatus (unresolved, resolved, regressed), sentryLevel, sentryEnvironment, sentryRelease, sentryEvents, sentryUsers, sentryAlerts, sentryRegressions, sentryIssueId. Event and user counts update when Sentry sends issue updates (resolve, regress, assign).

GlitchTip & other tools

The Connect tab shows a second URL that ends in ?token=…. The token is a password: keep it private, and use Issue a new token if it leaks.

GlitchTip

Project settings → Alerts → add a recipient of type General (Slack-compatible) Webhook with the token URL.

Any tool or script

curl -X POST "<token URL>" -H "Content-Type: application/json" -d '{
  "id": "checkout-500",            // stable id: repeats update the same Jira issue
  "title": "Checkout returns 500",
  "url": "https://status.example.com/incidents/42",
  "level": "error",                // debug | info | warning | error | fatal
  "environment": "production",
  "project": "shop",               // used for routing
  "status": "open",                // open | resolved | regressed
  "stacktrace": ["app.py:42 in submit"]
}'

Troubleshooting

Start with Activity in the app settings: it lists what arrived and why something was or wasn't created.

Nothing arrives at all (Activity is empty)
  • Check the Sentry integration's Webhook URL matches the URL on the Connect tab exactly. Reinstalling the app can change it.
  • Check the client secret: paste it again and save. A wrong secret is silently rejected (HTTP 401) for your safety.
  • Make sure the alert rule has the Error Autopilot webhook action, and that it actually fired (Sentry → Alerts → history).
Activity says "no Jira project mapped"

Set a Default Jira space key, or add a routing line. Alert payloads use the numeric Sentry project ID; you can also route by alert rule name.

Activity shows an error like "Jira create 400: issuetype"

The issue type doesn't exist in that space. Set Issue type to one that does (e.g. Task). Priority and due date problems are handled automatically: the field is skipped and the issue is still created.

"mode=alerts", "below min level", "filtered" or "muted"

These are your rules working: the error didn't qualify. Adjust them on the Rules tab.

Resolve or regression isn't reflected in Jira
  • The Sentry integration must have the issue webhook ticked.
  • For "Move to Done" or "Reopen", your workflow needs a transition into a Done (or To Do / In Progress) category status from the current status.
Repeat alerts don't add comments

By design: at most one "fired again" comment per issue per window (Rules → Repeat alerts).

Assignee doesn't follow Sentry

The Sentry assignee's email must match exactly one Jira user that the app can find. Team assignments are ignored.

No Sentry panel / JQL field not recognised

The panel appears only on issues created or updated by the app. New JQL fields can take a few minutes to become searchable after install.

"Subscription inactive" banner

The app stops creating and updating issues when its subscription is inactive. A site admin can renew it in Administration → Apps.

"Only Jira administrators can do this"

The settings page and test button require the Jira Administrator global permission.

FAQ

Which Sentry plans does it work with?

Sentry Team and above, and self-hosted Sentry: any setup that offers custom (internal) integrations. Sentry's free Developer plan lists no third-party integrations.

Does it change anything in Sentry?

No. It only receives webhooks. Sentry stays the source of truth.

Will it flood Jira?

No: one issue per Sentry issue, throttled repeat comments, and the storm guard caps new issues per hour.

Can I route different Sentry projects to different Jira spaces?

Yes, on the Routing tab, by project slug, project ID, project name or alert rule name.

Data & security

See Security and Privacy.