Changelog

WHAT WE'VE BURIED LATELY.

Every release, exhumed. Follow along as Tombstack gets sharper at catching what kills your game.

vPlatform

Crash grouping fixed for shipping builds, app hangs, crash-free players

FIXEDCrashes from RELEASE builds were grouped wrong — and this is the big one, because it affects the majority of real player telemetry. A shipping (IL2CPP/AOT) build writes stack frames like “at Game.Player.Update () [0x00010] in <8f4a2b1c…>:0”, where that hex value is an id for the compilation, not for your code. We were including it in the grouping hash, so the SAME bug produced a DIFFERENT signature in every build you shipped: it kept reappearing as a brand-new “first seen” issue, occurrence counts were split across releases, and regression detection could not see that a bug had come back. Editor-reproduced crashes also grouped separately from the identical crash arriving from a shipping build. Both are fixed, and the fix applies to builds already in players' hands — we regroup server-side on ingestion, so there is no SDK update to install. ONE-TIME EFFECT WORTH KNOWING: signatures computed from now on differ from the old ones, so a currently-open issue will start collecting under a new row, and triage state (resolved / assigned) does not carry across. Expect a burst of “new” signatures that are really your existing bugs, correctly grouped for the first time.
NEWApp hangs are now a first-class card on Analytics — count, players hit, median / p95 / worst stall, and the worst scenes ranked. Your SDK has been detecting main-thread freezes since 0.11 and sending them, but nothing on our side read them: they landed as anonymous custom events you would only find by digging through the event browser. A freeze produces no crash report and no stack trace, so this was the single failure your players call “the game is broken” that the dashboard never mentioned. Nothing to instrument — detection is on by default with a 5 second threshold, so if your game froze in the selected window, the card already has it.
NEWCrash-free PLAYERS, alongside crash-free sessions on your Command Center. Sessions tell you how often the game fails; players tell you how many people it failed — and they can be very far apart. A bug that crashes one unlucky player forty times barely dents crash-free sessions on a busy game, and reads as a healthy 99%; the player figure shows that person for what they are, a whole player having a bad time. Read the two together: a wide gap means your crashes are concentrated in a minority of players, which is the shape that quietly drives churn and refunds.
FIXEDARPDAU · 24h was understated on high-volume games. Its numerator (purchases) comes from the analytics page's event budget, which on a busy game does not reach back a full 24 hours, while its denominator (active players) always did — so a partial day of revenue was divided by a whole day of players, by a factor nobody could see. Where the events cannot span 24 hours the figure is now withheld and labelled “withheld · window too dense”, with an explanation on hover, instead of showing a number that is quietly low. Narrowing the range or applying a build/platform filter brings it back. Every other revenue figure on the card was already scoped honestly to the events it had.
FIXEDA play session that ran across UTC midnight was counted as two sessions in the crash-rate denominator — once on each side of midnight — so every crash rate was understated by roughly the share of your sessions that straddle midnight. Rates and per-build rates will therefore read slightly HIGHER than before; they were too low, and this is the correction. Crash counts, crash-free percentages and session lists were never affected. If your game has long sessions the change is larger, because more of them cross midnight.
IMPROVEDNothing about how you are billed has changed. What changed is that the two rules protecting your invoice are now covered by tests instead of by inspection: within a billing period the reported peak can only ever RISE, so a temporary dip in our own measurement (a row ageing out, a query hitting a size limit, a player exercising erasure) can never quietly move your bill — and at the start of a new period it resets to that period's own peak instead of carrying the previous one forward. Both rules already worked; neither was verified automatically, on the one code path where a silent mistake becomes a wrong invoice.
IMPROVEDA studio on a negotiated price is now provably excluded from automatic metering, including the free-forever case — zero is exactly the value a careless check would read as “unset” and bill at the full published ladder.
vPlatform

Accuracy pass — some of your numbers will change

FIXEDCrash rates filtered by build (or by the legacy exact platform filter) divided that build's crashes by EVERY build's sessions — so a build at 10% adoption showed roughly a tenth of its real rate. Both sides of the rate are now scoped to the filter, which means filtered rates read HIGHER than before. They were understated; this is the correction.
FIXEDThe sidebar crash-free gauge used a different formula from the crash-free number on your overview, and because it divided by zero sessions it showed a reassuring “100.0%” for a game that had never sent any telemetry. Every surface now uses one definition — the share of player sessions that ended without a crash — and shows “—” when there is nothing to divide by, instead of green.
FIXEDPer-build session counts on the releases page counted dedicated-server boots as player sessions, which deflated each build's crash rate and disagreed with the crash-free column beside it. Servers are now excluded from both sides.
FIXEDOn very large games, 24-hour reads (sessions, live CCU, DAU) could sample the oldest rows in the window instead of the most recent. They now always keep the current window.
IMPROVEDThe status page is a live probe of the database, telemetry store and blob storage on every request rather than a static list — it can and will show a degradation.
IMPROVEDCrash / exception / unclean-shutdown chips explain themselves on hover wherever they appear, the Graveyard opens on the review queue instead of a mixed list, and a crash's session link now lands on that session's timeline at the moment of the crash.
NEWPublished our sub-processor list at /legal/subprocessors (AWS, Stripe, and Anthropic if you use the AI assistant), with the exact data each receives and where it sits. The privacy policy now states plainly that telemetry stays in the EU and that only an assistant question leaves it.
FIXEDUsage metering is now reported before alerting runs, not after. Previously a long alerting pass could consume the scheduled job's whole time budget, and any studio whose metering was skipped that way was simply never metered. If that applied to you, your usage will now be reported accurately — which for a small number of studios means an invoice that reflects real peak concurrency for the first time. If a bill looks unexpected, contact us and we will walk through the numbers with you.
IMPROVEDThe Unity in-editor hub now reports the same crash-free percentage as the dashboard. It had been deriving it from the crash rate, which is a different measurement, so the two could disagree for the same game.
vPlatform

A proper devblog — illustrated, and on film

NEW“Everything Tombstack does” — a full written tour of the platform: what the SDK captures, how a crash becomes a grouped issue, how a dead server names the players who were on it, and what the analytics, alerting, MCP and billing layers actually do (including what is still on the roadmap)
NEWA 3-minute narrated film of that same tour, embedded in the article
IMPROVEDEvery article now carries real diagrams and cover art instead of placeholder graphics — the ingest path, report anatomy, multiplayer correlation, analytics, integration surfaces, the pricing ladder and the architecture are each drawn out
FIXEDRetired an old post whose central latency claim was never measured, and corrected the symbolication write-up so it no longer implies server-side minidump symbolication ships today
vPlatform

Platform-native webhook alerts

NEWDiscord webhooks now get rich embeds — severity colors, structured fields, and deep links that land straight on the exact signature, fleet, or analytics page the alert concerns
NEWSlack webhooks get native Block Kit formatting (header, fields, context footer) with a plain-text fallback
IMPROVEDCustom endpoints keep the plain payload unchanged and gain a structured `tombstack` JSON object (title, severity, url, fields) that integrations can parse instead of scraping text
vPlatform

Funnels that explain their losses + a bigger chart kit

NEWFunnel drop-off drill-down — every step shows WHO stalled there, what they did instead (their last action before going silent), and a one-click jump to the exact session timeline at the drop-off moment
NEWNew chart kinds: hour-of-week activity heatmap, ranked horizontal bars, and a timeline strip with event markers — plus a moving-average smoothing option on line charts
NEWTwo dashboard widgets: Activity heatmap and Top events
IMPROVED70+ quality-of-life touches across analytics, explore, dashboards, sessions and fleet — CSV exports, search and sort, copy-link, step reordering, actionable empty states, and more
vPlatform

Hosted MCP — AI access as a service

NEWThe MCP server is now hosted by Tombstack — point Claude, Cursor or any MCP client at tombstack.com/api/mcp; nothing to download, build or run
NEWMint MCP keys from your billing page, scoped to all your games or locked to a single game; revoke instantly
NEWMCP access is a €20/month add-on per studio, on top of your usage plan — enable and disable any time
IMPROVED16 AI tools including one-call signature analysis, retention cohorts, server-fleet triage, and read+write triage actions
vPlatform

Configurable data retention

NEWChoose how long your telemetry is kept — 30 to 90 days — from your Billing page; older data is then deleted automatically to keep only what's useful
NEWFree studios keep 30 days; upgrade to a paid plan to extend the window up to 90 days
vSDK 0.19.1

Crash kinds + tighter live signal

NEWCrash reports are now classified — Crash (the process died), Exception (managed, the game usually kept running), or Unclean shutdown — labelled distinctly across the dashboard
NEWFilter the Graveyard by kind, so you can triage hard crashes separately from caught exceptions
NEWThe SDK sends a heartbeat when the app is backgrounded and on quit (plus Tombstack.SendHeartbeatNow()), so live CCU and session liveness stay tight
FIXEDLog-pull + retention hardening from an internal audit (past-session delivery, retention=1 edge case)
vPlatform

Analytics: funnels by audience, retention by step, saved views

NEWSplit any funnel by audience or segment, side by side
NEWRetention by funnel step — see which progression gate hurts D1/D7/D30 most
NEWEvent property breakdowns, period-over-period comparison, and saved analytics views
vSDK 0.18.0

Launch-log retention + frame-health detail

NEWThe SDK keeps the last N launch logs (default 3, configurable) keyed by session — so you can pull a specific past session's log even after the player reconnected
NEWA server-session log pull now reaches players who have since disconnected
NEWA per-20-second frame-stats series rides each heartbeat for sub-minute frame-health detail — no extra ingestion cost
vPlatform

Live sessions, country cohorts, environment scoping, multiplayer correlation

NEWLive sessions — see who's playing right now, paginated
NEWPer-country retention cohorts, for tracking country-targeted campaigns
NEWCrash / exception / session numbers are now scoped by environment, and your webhook alerts carry which environment(s) they concern
NEWA server crash lists every client session that was on it when it went down; a client crash links straight to its server session
vBilling

CCU-peak billing goes live

NEWAdd a card at signup; we auto-subscribe off-session the moment your monthly peak crosses the free tier (10 CCU) — no manual upgrade, no interruption
NEWA studio billing page with your card, usage, and invoices; owners are emailed before billing starts
vSDK 0.16–0.17

No-anonymous identity + real OS exit reasons

NEWNo more anonymous players — the SDK mints a persistent, per-game device id that upgrades to your real user id on SetUser, merging the pre-auth telemetry into the same player
NEWUnclean shutdowns on Android now report the real OS exit reason (oom / anr / signal / native crash) instead of one generic bucket
NEWStartSession() gate so the first heartbeat carries the player's identity + environment
vPlatform

Global platform filter & segmented retention

NEWGlobal platform filter (topbar) — scope every dashboard page to windows, macos, linux, android, ios, mobile or desktop; crash rates scope both numerator and session denominator
NEW?platform= on the read API (crashes, crashes/summary, events, metrics, bug-reports, retention) — invalid values are rejected with a 400, never silently ignored
NEWSegmented retention — ?by= splits D1/D7/D30 cohorts by os, mobile-vs-desktop, device model, GPU, RAM/VRAM band, CPU threads or engine; CSV export included
IMPROVEDEvery page that can't honour the platform filter says so with a visible chip — no silently mixed-scope numbers; the filter never changes your bill
vSDK 0.5.0

Fully autonomous SDK + standalone native client

NEWUnity SDK is autonomous after Init — unhandled exceptions, unobserved Tasks and AppDomain errors are captured with no extra code
NEWPlayer log auto-uploaded with every crash and bug report (rolling 512 KB session log)
NEWUnclean-shutdown detection — a hard crash or OOM kill is reported on the next launch with the previous session's log recovered
NEWStandalone C/C++ native SDK (tombstack-native) — a C99 DLL for any engine, CI-verified on Windows, Linux and macOS
vSDK 0.4.0

In-editor Hub & account sign-in

NEWUnity editor plugin — sign in with your Tombstack account, link a game, and watch a live crash dashboard inside the editor (all UI Toolkit)
NEWTrackEvent analytics API + breadcrumb levels
IMPROVEDWrite-ahead crash durability and consent-gated, user-attributed heartbeats
vPlatform

The forge-dark platform

NEWCommand center, the Graveyard, signature autopsy, live fleet, sessions, analytics, releases, symbols, alerts and a tabbed settings hub
NEWAI triage assistant (in-dashboard) and a 12-tool MCP server
NEWGraduated CCU pricing — free under 10 peak CCU, then a volume-discounted ladder
Subscribe to release events via the MCP / API.