Pro Plan10 minutesintermediate

Error Groups & Aggregation

Understand how Zenovay groups similar errors together and manage error triage workflows.

errorsgroupingaggregationtriagedebugging
Last updated: January 15, 2025

Learn how Zenovay intelligently groups similar errors together to reduce noise and speed up debugging.

How Error Grouping Works

Grouping Algorithm

Zenovay groups errors based on:

  1. Error type - TypeError, ReferenceError, etc.
  2. Error message - Normalized message pattern
  3. Stack trace - Top frames of call stack
  4. Source location - File, line, column

Example

These errors are grouped together:

// Error 1: User ID 123
TypeError: Cannot read property 'name' of undefined
    at getUserName (user.js:45:12)
    at renderProfile (profile.js:78:5)

// Error 2: User ID 456
TypeError: Cannot read property 'name' of undefined
    at getUserName (user.js:45:12)
    at renderProfile (profile.js:78:5)

Same group because:

  • Same error type (TypeError)
  • Same message pattern
  • Same stack trace location

What's Normalized

OriginalNormalized
User 123 not foundUser {id} not found
Error at line 45Error at line {n}
Object#<abc123>Object#<id>
/api/users/123/api/users/{id}

Error Group Dashboard

Group Overview

Each error group shows:

MetricDescription
EventsTotal occurrences
UsersUnique users affected
First SeenInitial occurrence
Last SeenMost recent
TrendFrequency trend (↑↓→)
StatusNew, Reviewing, Resolved

Group Detail Page

Click a group to see:

  • Sample error - Full details of one instance
  • Event timeline - Occurrences over time
  • Affected users - List of impacted visitors
  • Browser breakdown - Which browsers affected
  • Page breakdown - Where errors occur
  • Related groups - Similar errors

Error Status Workflow

Status Types

StatusDescriptionUse Case
NewJust discoveredDefault for new errors
ReviewingBeing investigatedAssigned to developer
ResolvedFix deployedError should stop
IgnoredWon't fixKnown issue, low priority
RegressedReturned after resolveNeeds re-investigation

Workflow Example

New Error Detected
       ↓
   [New] ← Auto-assigned
       ↓
Developer clicks "Take Ownership"
       ↓
 [Reviewing] + Assignee
       ↓
Fix deployed
       ↓
 [Resolved] + Resolution note
       ↓
If error recurs:
       ↓
 [Regressed] → Notification sent

Changing Status

Single error:

  1. Open error group
  2. Click status dropdown
  3. Select new status
  4. (Optional) Add note

Bulk actions:

  1. Select multiple errors
  2. Click ActionsChange Status
  3. Select status
  4. Confirm

Filtering & Sorting

Filter Options

FilterOptions
StatusNew, Reviewing, Resolved, Ignored
Date RangeLast 24h, 7 days, 30 days, Custom
BrowserChrome, Firefox, Safari, Edge, etc.
OSWindows, macOS, iOS, Android, Linux
PageSpecific URL patterns
Error TypeTypeError, ReferenceError, etc.
AssigneeTeam member

Sort Options

  • Most frequent (default)
  • Most users affected
  • Newest first
  • Recently active
  • Oldest unresolved

Managing Error Groups

Merge Groups

Sometimes separate groups should be one:

  1. Select groups to merge
  2. Click ActionsMerge Groups
  3. Choose primary group
  4. Confirm merge

Merging combines:

  • Event counts
  • User counts
  • Timeline data

Split Groups

If a group contains different errors:

  1. Open error group
  2. Click Split Group
  3. Select events to separate
  4. Create new group

Delete Groups

Remove false positives:

  1. Select group(s)
  2. Click ActionsDelete
  3. Confirm deletion

Future matching events will create new groups.

Assignee & Ownership

Assign to Team Member

  1. Open error group
  2. Click Assignee dropdown
  3. Select team member
  4. They receive notification

Auto-Assignment Rules

Set up automatic assignment:

  1. Go to SettingsError Rules
  2. Create rule:
    • Condition: Error message contains "payment"
    • Action: Assign to "Payment Team"

Ownership History

View who worked on an error:

  • Assignment changes
  • Status updates
  • Notes added
  • Resolution details

Integrations

Jira Integration

Create Jira tickets from errors:

  1. Connect Jira in SettingsIntegrations
  2. Open error group
  3. Click Create Jira Issue
  4. Map fields
  5. Issue created with error details

GitHub Integration

Link errors to GitHub issues:

  1. Connect GitHub repository
  2. Click Create GitHub Issue
  3. Issue includes:
    • Error message
    • Stack trace
    • Link back to Zenovay

Slack Notifications

Get notified in Slack:

  1. Connect Slack workspace
  2. Set up error alerts
  3. Receive notifications for:
    • New error types
    • Error spikes
    • Regressions

Search & Discovery

Search Syntax

# Search by message
message:"Cannot read property"

# Search by file
file:checkout.js

# Search by type
type:TypeError

# Combined search
type:TypeError file:payment status:new

Saved Searches

Save frequently used filters:

  1. Apply filters
  2. Click Save Search
  3. Name the search
  4. Access from sidebar

Best Practices

Triage Workflow

  1. Daily review: Check new errors each morning
  2. Prioritize by impact: Users affected > frequency
  3. Quick wins: Resolve easy fixes immediately
  4. Document: Add notes for complex issues
  5. Monitor regressions: Set alerts for resolved errors

Effective Grouping

  • Keep source maps current
  • Use consistent error messages
  • Add context to tracked errors
  • Review and merge related groups

Team Collaboration

  • Assign clear ownership
  • Use status consistently
  • Add resolution notes
  • Share learnings in team

Troubleshooting

Too Many Groups

Causes:

  • Dynamic error messages
  • Missing source maps
  • Third-party script errors

Solutions:

  • Add message normalization
  • Upload source maps
  • Filter third-party errors

Errors Not Grouping

Check:

  • Stack traces available
  • Same source location
  • Message patterns match

Wrong Grouping

  • Split incorrectly grouped errors
  • Review grouping algorithm
  • Add custom grouping rules

Next Steps

Was this article helpful?