RUM Flutter SDK release notes
Jun 21, 2026
Flutter SDK 0.9.1
- Fixed an Android build failure for consumers on Kotlin 2.x (the K2 compiler in Kotlin 2.2+). An internal helper used an expression body with early
return nullshort-circuits, which K2 rejects as a hard error, breaking:cx_flutter_plugin:compileDebugKotlin. It was converted to a block body with the same logic. - Removed
mavenLocal()and a local-repo block that were accidentally shipped inandroid/build.gradle; dependency resolution now relies ongoogle()andmavenCentral()as intended.
Jun 18, 2026
Flutter SDK 0.9.0
- New automatic view tracking via
CxNavigatorObserver. Add it to your app'snavigatorObserversand screen changes are reported automatically, with no manualsetViewper page. OnlyPageRoutes are tracked (dialogs, bottom sheets, and popups are not), and the view name comes fromRouteSettings.name(unnamed routes are skipped). Pass anameExtractorto derive the name differently or to skip a route by returningnull; a throwingnameExtractoris caught and reported, so it can never break navigation.
Jun 18, 2026
Flutter SDK 0.8.0
beforeSendnow realigns OTel span attributes, bringing Flutter to parity with the native fix. When abeforeSendcallback edits a network or custom-span event, the change is mirrored onto the event'sinstrumentation_data.otelSpan.attributesso the OTel span matches the modifiedtext.cx_rum. Previously this realignment ran only on the synchronous native path, so Flutter's asynchronousbeforeSendleft OTel attributes at their pre-edit values; keys the callback removes are now dropped from the span.- Fixed custom-span events being dropped during
beforeSend:CoralogixEventTypewas missing thecustom-spanvalue, so those events failed to decode in the round-trip. The enum value and its mapping were added.
Jun 18, 2026
Flutter SDK 0.7.0
- Session Replay now performs Flutter-native masking, compositing a pre-masked bitmap from the real render tree instead of the previous pull-based region/OCR path.
CXSessionReplayOptionsis the single source of truth for what gets masked —maskAllTexts,textsToMask(regex),maskAllImages, plus theMaskedWidgetwrapper. This fixes over-masking of text on routes hidden behind the current screen and mask/scroll misalignment during fast scrolling. Learn more - Fixed iOS Session Replay scroll lag: frames are now captured at the resolution the native SDK retains, with an in-flight guard, a self-healing per-capture timeout, and scroll-skip.
- Deprecated
registerMaskRegionandunregisterMaskRegion. Masking is applied automatically now, so these are no-ops (they log) and will be removed in a future release. - Native iOS SDK upgraded to 2.9.1, Android to 2.16.1.
Jun 4, 2026
Flutter SDK 0.6.0
- Fixed
reportError(message, data, stackTrace)to honor its public contract on both platforms. Previously, calling it with a non-empty stack trace silently dropped thedatamap. The iOS and Android bridges now threaddatathrough into the nativecustomAttributesparameter, so a single RUM error event carries both the parsed frames and the data attributes. - Native iOS SDK upgraded to 2.7.0, Android to 2.13.0.
May 19, 2026
Flutter SDK 0.5.1
- Fixed obfuscated
virtaddresses that were wrong on iOS (a follow-up to the 0.4.2 fix). The parser now emitsvirtin the canonicaldart symbolizeform<symbol>+0x<offset>, which the server resolves against the uploaded debug-info file. This format requires a corresponding server-side update during rollout. (BUGV2-6011 follow-up) - Fixed an Android parser bug that dropped every frame: the frame regex now allows the extra
virt ADDRtoken that Android's Dart runtime emits betweenabs ADDRand the symbol suffix. - Behavioral change: engine and framework frames (those without a
_kDartIsolateSnapshotInstructions/_kDartVmSnapshotInstructionssuffix) are now skipped at parse time, because they can't be resolved against the app's symbols file. The parsed stack trace now carries adropped_frame_countfield (omitted when zero). Learn more
May 13, 2026
Flutter SDK 0.5.0
- New
excludeFromSamplingoption onCXExporterOptions(CX-40205) keeps selected instrumentation categories emitting even when the session is sampled out viasdkSampler. Supported categories:errors,logs,network,userInteractions,mobileVitals,customSpan, andcustomMeasurement. Defaults to an empty list, so the sampler gates everything as before. - New Time Measurement API (CX-40514):
startTimeMeasure(name, {labels})andendTimeMeasure(name)bracket a span of work, which the native SDK reports as acustom-measurementspan in milliseconds. Pair everystartwith exactly oneend. Learn more - Native iOS SDK upgraded to 2.6.4.
May 11, 2026
Flutter SDK 0.4.2
- Fixed iOS Session Replay scroll lag (via a native iOS SDK upgrade), particularly on screens with mixed-script (RTL / CJK) text.
- Fixed obfuscated stack trace
virtaddresses: the parser now computesvirtfrom the per-frame_kDartIsolateSnapshotInstructions+0xNNNoffset suffix, falling back to the previous formula only when that suffix or theisolate_instructionsheader is missing. (BUGV2-6011) - Native iOS SDK upgraded to 2.6.3, Android to 2.12.0.
May 6, 2026
Flutter SDK 0.4.1
- Android text masking (
maskAllTextsandtextsToMask) now works in Flutter. Because Flutter renders inside a singleFlutterSurfaceView, the Flutter layer now walks the live render tree on each frame capture and returns mask regions for visible text to the native Android SDK; off-screen, scrolled-away, and covered content is excluded automatically. iOS is unaffected — it handles text masking natively. Learn more textsToMasknow accepts regex patterns (each entry is compiled as aRegExp; plain strings match any text containing the word). Invalid patterns are skipped rather than crashing SDK initialization.- Text fields (
RenderEditable) are always masked whenever anytextsToMaskpattern is configured, so sensitive input is never inspected to decide whether to mask it. - Fixed a sentinel registration race so the first captured frame can no longer be unmasked, and registration failures are now logged.
May 3, 2026
Flutter SDK 0.4.0
- New Custom Spans public API (CX-36096).
getCustomTracer({ignoredInstruments})returns aCoralogixCustomTracerwhentraceParentInHeader.enableistrue; from there,startGlobalSpan()creates a root span,startCustomSpan()creates child spans,withContext()runs Dart work in a Zone that inherits the active span, andendSpan()closes spans. Only one tracer is allowed per SDK lifecycle. Learn more - New
CoralogixIgnoredInstrumentenum (networkRequests,userInteractions,errors) opts specific Dart-side instrumentation out of inheriting the active custom span. CxHttpClientandCxDioInterceptornow automatically inherit the active custom span, inject atraceparentheader, and attachcustomTraceId/customSpanIdto network events. Barehttpand raw Dio calls still bypass this — wrap them inCxHttpClient/CxDioInterceptorto keep the trace linked.- New
CXExporterOptions.tracesExportercallback streams completed OTLP-style trace batches over an EventChannel for you to forward to a Coralogix OTLP endpoint. It is additive and does not replace the normal RUM log pipeline. Learn more - Fixed an iOS scroll freeze with session recording, the Android span lifecycle on
shutdown(), and Android child span IDs (now real OTelspanId/traceId).endSpan()is now idempotent on both platforms (iOS previously threwunknown_span). - Native iOS SDK upgraded to 2.6.2, Android to 2.11.1.
Apr 5, 2026
Flutter SDK 0.3.3
- Fixed release-mode caught exceptions being recorded as logs instead of errors; the iOS bridge now routes through the error path whenever a parsed stack trace is present.
- Fixed empty release-mode stack frames: column numbers are now optional, since Dart AOT (release) stack traces omit them.
- Added a
scripts/bump_version.shscript to keep version numbers in sync acrosspubspec.yaml,lib/plugin_version.dart, and the iOS podspec. - Added an
ObfuscatedReleasebuild configuration to the example app.
Mar 31, 2026
Flutter SDK 0.3.2
- Fixed empty frame addresses when reporting obfuscated Dart errors: the parser now matches the Dart 3.x
abs-only frame format and computes virtual addresses (abs − isolate_dso_base). - Fixed a release CI failure caused by a missing
.envasset during example-app validation. (BUGV2-5531)
Mar 26, 2026
Flutter SDK 0.3.1
- Fixed the always-empty
fragmentsfield in network events:CxDioInterceptorandCxHttpClientnow report the URL path (for example,/some/path) instead of the URI fragment. (BUGV2-5509)
Mar 26, 2026
Flutter SDK 0.3.0
- Obfuscated error stack traces now propagate and export correctly through the iOS bridge.
- Fixed iOS scroll lag from interaction tracking: the swipe-context widget-tree walk now runs once at pointer-down and is cached, instead of running on every pointer-up or cancel.
Mar 23, 2026
Flutter SDK 0.2.0
- New
CxDioInterceptorfor the Dio HTTP client: add it to yourDioinstance to automatically capture network requests, generate RUM spans, and inject W3Ctraceparentheaders — no migration from your existing networking layer required. - New
networkCaptureConfigoption onCXExporterOptions: supply a list ofCxNetworkCaptureRuleobjects to control which headers and payloads are captured per URL. Rules match in order (first match wins), nothing is captured when no rules are configured, and bodies over 1024 characters are dropped. - Expanded network context:
CxHttpClientandCxDioInterceptornow reportstatus_text, request and response headers and payloads, anderror_message. beforeSendis now optional. Migration: if you relied on the implicit pass-through, setbeforeSend: (event) => eventexplicitly.- Performance and threading improvements: iOS
setUserInteractionis now dispatched to the main thread, and Android and iOS move initialization and background work onto appropriate queues. - Native iOS SDK upgraded to 2.3.3, Android to 2.9.3.
Mar 10, 2026
Flutter SDK 0.1.1
- Hybrid user interaction tracking: when
userActionsis enabled, Dart tracks click, scroll, and swipe events while iOS receivesuserActions: falseto avoid duplicates. setUserInteractionnow forwards interaction payloads to the native iOS and Android SDKs, and returns an error whenevent_nameis missing or the SDK is not initialized.- Context types were aligned with the native SDKs across event, device, error, network request, and interaction contexts, with
toJson()omitting nulls for thebeforeSendround-trip. - Native iOS SDK 2.2.0, Android 2.9.0.
Feb 16, 2026
Flutter SDK 0.1.0
- Added Android support for
allowedTracingUrlsinTraceParentInHeaderconfigurations. - Native Android SDK upgraded to 2.7.2, iOS to 2.1.0.
Jan 25, 2026
Flutter SDK 0.0.20
- Added the AP3 domain as an option for initializing the SDK.
Jan 21, 2026
Flutter SDK 0.0.19
- Breaking change: the package now requires Flutter 3.27.0 or later, which is needed to support the modern
Color.withValues()API that replaced the deprecatedColor.withOpacity()method. - Native iOS SDK upgraded to 1.5.3, plus a bug fix.
Dec 10, 2025
Flutter SDK 0.0.18
- Bug fix (BUGV2-1468).
- Native Android SDK upgraded to 2.6.3.
Nov 13, 2025
Flutter SDK 0.0.17
- Bug fix (BUGV2-1474).
- Native iOS SDK upgraded to 1.4.0.
Sep 28, 2025
Flutter SDK 0.0.16
- Added
sendCustomMeasurement. Learn more - Native iOS SDK upgraded to 1.2.6.
Sep 21, 2025
Flutter SDK 0.0.15
- Native iOS SDK upgraded to 1.2.5.
Aug 10, 2025
Flutter SDK 0.0.14
- Native iOS SDK upgraded to 1.1.2.
Jul 24, 2025
Flutter SDK 0.0.13
- The Android plugin now respects setting
userActionstofalse, so user interaction tracking can actually be turned off. - Native Android SDK upgraded to 2.4.44.
2025
Flutter SDK 0.0.12
- Added
proxyUrlsupport. - Added
traceParentInHeader(iOS only). - Native iOS SDK upgraded to 1.0.26.
Jun 22, 2025
Flutter SDK 0.0.11
- Bug fixes.
- Native iOS SDK upgraded to 1.0.24.
Jun 17, 2025
Flutter SDK 0.0.10
- Fixed
beforeSendnot sending instrumentation on Android and iOS. - Fixed an Android crash.
- Native Android SDK upgraded to 2.4.41, iOS to 1.0.23.
May 28, 2025
Flutter SDK 0.0.9
- Added Android support for the
beforeSendoperation, plus bug fixes and improvements. - Native Android SDK upgraded to 2.4.4.
May 27, 2025
Flutter SDK 0.0.8
- Breaking change: the
CxExporterOptionsbeforeSendcallback is now asynchronous. - Added Android support for
getLabels(),getSessionId(),isInitialized(),setApplicationContext(), and thebeforeSendcallback. - Disabled swizzling for iOS (NetworkOnly).
- Native iOS SDK upgraded to 1.0.22, Android to 2.4.3.
May 8, 2025
Flutter SDK 0.0.7
- Implemented
beforeSend,getLabels(),getSessionId(),isInitialized(), andsetApplicationContext(). - Native SDK upgraded to 1.0.21.
Apr 24, 2025
Flutter SDK 0.0.6
- Fixed a crash related to
URLSessionInstrumentation. - Removed the Navigation instrument from
CoralogixOptions. - Native SDK upgraded to 1.0.20.
Apr 8, 2025
Flutter SDK 0.0.5
- Removed
CustomDomainUrl. - Native SDK upgraded to 1.0.18.
Feb 10, 2025
Flutter SDK 0.0.4
- Fixed a bug that prevented data from being sent on Android when no custom URL was set.
Dec 15, 2024
Flutter SDK 0.0.3
- Added the Android implementation.
Nov 25, 2024
Flutter SDK 0.0.2
- Added
sdkSamplerto set the SDK initialization rate as a percentage (0–100%). - Added
mobileVitalsFPSSamplingRateto set the FPS sampling frequency per hour (default once a minute). - Added
instrumentationsto selectively activate or deactivate specific instruments at runtime (all active by default). - Added
collectIPDatato toggle collection of user IP and geolocation data (defaulttrue).
Jul 18, 2024
Flutter SDK 0.0.1
- Added Android support for
allowedTracingUrlsinTraceParentInHeaderconfigurations. - Native Android SDK 2.7.2, iOS SDK 2.1.0.
Theme
Light