<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp" -->

---
title: Introducing a smarter algorithm in Crashlytics | daily.dev
description: Firebase Crashlytics is automatically rolling out a new, smarter event-grouping algorithm that analyzes stack trace frames, exception messages, error codes,...
canonical: https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing a smarter algorithm in Crashlytics | daily.dev
og:description: Firebase Crashlytics is automatically rolling out a new, smarter event-grouping algorithm that analyzes stack trace frames, exception messages, error codes,...
og:url: https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp
og:image: https://api.daily.dev/og/posts/jBkl3Qfgp.png
og:image:alt: Introducing a smarter algorithm in Crashlytics
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing a smarter algorithm in Crashlytics

**[Firebase](https://daily.dev/sources/firebase-blog)** · 6 min read · 0 upvotes · 0 comments

## Summary

Firebase Crashlytics is automatically rolling out a new, smarter event-grouping algorithm that analyzes stack trace frames, exception messages, error codes, and platform-specific characteristics instead of relying on a single line of code. This fixes long-standing under-grouping and over-grouping problems, introduces 'variants' as sub-groups within issues sharing a common failure point, and requires no action from developers. Existing issues remain untouched while new events that don't match a v1 issue get processed by the v2 algorithm, gradually populating the Issues table with better-organized, more searchable issues.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2023/05/crashlytics-event-grouping-algorithm-update>

## Questions this post answers

### What changed in how Firebase Crashlytics groups crash events into issues?

Crashlytics now uses a new algorithm that analyzes stack trace frames, exception messages, error codes, and platform-specific characteristics to group events, replacing the old method that relied mainly on matching a single line of code. This fixes under-grouping (duplicate issues from the same root cause) and over-grouping (unrelated events lumped together), and it introduces variants, sub-groups within an issue sharing the same failure point and similar stack trace.

_Track how Crashlytics changes affect crash triage workflows by following updates on daily.dev._

### Do I need to do anything to get the new Crashlytics grouping algorithm applied to my app?

No action is required; the new event-grouping algorithm rolls out automatically to all Crashlytics users. Existing issues in the Issues table are not removed. Incoming events are first checked against existing v1 issues, and only events that don't match any existing v1 issue are routed to the new v2 algorithm, so the table evolves gradually with new v2 issues and variants over time.

_Developers relying on Crashlytics for app stability can follow rollout details like this on daily.dev._

---

Tags: [#mobile](https://daily.dev/tags/mobile), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing a smarter algorithm in Crashlytics","url":"https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp"},"datePublished":"2026-08-23T12:20:24.772Z","dateModified":"2026-08-23T12:34:10.021Z","description":"Firebase Crashlytics is automatically rolling out a new, smarter event-grouping algorithm that analyzes stack trace frames, exception messages, error codes,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/610b0bc90d2196649176eebaf2431dca?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/610b0bc90d2196649176eebaf2431dca?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Firebase","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Firebase","logo":"https://media.daily.dev/image/upload/s--i395oqZH--/f_auto,q_auto/v1787487448/logos/firebase-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/firebase-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"mobile,firebase","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Firebase","item":"https://daily.dev/sources/firebase-blog"},{"@type":"ListItem","position":3,"name":"Introducing a smarter algorithm in Crashlytics"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-a-smarter-algorithm-in-crashlytics-jbkl3qfgp#faq","mainEntity":[{"@type":"Question","name":"What changed in how Firebase Crashlytics groups crash events into issues?","acceptedAnswer":{"@type":"Answer","text":"Crashlytics now uses a new algorithm that analyzes stack trace frames, exception messages, error codes, and platform-specific characteristics to group events, replacing the old method that relied mainly on matching a single line of code. This fixes under-grouping (duplicate issues from the same root cause) and over-grouping (unrelated events lumped together), and it introduces variants, sub-groups within an issue sharing the same failure point and similar stack trace. Track how Crashlytics changes affect crash triage workflows by following updates on daily.dev."}},{"@type":"Question","name":"Do I need to do anything to get the new Crashlytics grouping algorithm applied to my app?","acceptedAnswer":{"@type":"Answer","text":"No action is required; the new event-grouping algorithm rolls out automatically to all Crashlytics users. Existing issues in the Issues table are not removed. Incoming events are first checked against existing v1 issues, and only events that don't match any existing v1 issue are routed to the new v2 algorithm, so the table evolves gradually with new v2 issues and variants over time. Developers relying on Crashlytics for app stability can follow rollout details like this on daily.dev."}}]}
```

