For the complete documentation index, see llms.txt. This page is also available as Markdown.

Android SDK

Version history and release notes for the Luciq Android SDK. Track new features, enhancements, fixes, and breaking changes in each published release.

v19.12.0

New Features

  • Adds render-aware screenshot capture, keeping private and auto-masked views accurately covered even when a layout or draw pass happens during capture. Applies to bug report screenshots, Repro Steps, and Session Replay. Disabled by default — enable and tune it at app startup.

Luciq.setRenderAwareScreenshotCapturingEnabled(true)
Luciq.setScreenshotCapturingMaxRetries(3)
Luciq.setScreenshotCapturingRetryDelay(200)

Enhancements

  • Keeps the SDK running on emulators instead of pausing it on low virtual storage or memory, and no longer classifies emulators as low-performance devices.

  • [Internal] Enhances SDK internal analytics

Bug Fixes

  • Fixes mandatory version update announcements being dismissed after tapping "Update Now" even when the app was not updated, letting users continue into the app.

  • Fixes Repro Steps recording nested fragment screens out of order, where a child screen could be logged before the parent screens that contain it.

v19.11.0

New Features

  • Extends theme support to In-App Surveys and Announcements, applying the same colors, fonts, and light/dark mode already used in Bug Reporting.

Enhancements

  • Adds support for Android 17 (API 37).

  • Adds support for Jetpack Compose BOM 2026.06.01 (Compose 1.11.4).

  • Improves text contrast in the bug reporting screen to meet WCAG AA.

Bug Fixes

  • Fixes text fields not being identified as input fields in User Steps and Repro Steps on Compose 1.8.0 and above.

  • Fixes the Surveys dialog showing at the wrong size after rotating the device.

  • Fixes screen reader announcements for consent checkboxes in the bug reporting screen.

  • Fixes an issue where surveys could fail to be fetched in some configurations.

v19.10.1

Enhancements

  • Adds a read-only isCanceled property to NetworkLogSnapshot, letting apps identify and optionally drop cancelled network requests via the network log listener.

Luciq.setNetworkLogListener { networkLog ->
    if (networkLog.isCanceled) null else networkLog
}
  • Reduces disk writes when the SDK applies configuration updates.

  • Reduces the overhead of APM screen rendering monitoring and releases its resources when the feature is disabled.

  • Reduces Session Replay CPU usage.

Bug Fixes

  • Fixes the screenshot, floating and screen-recording buttons being hidden behind bottom sheets and dialogs.

v19.10.0

Features

  • Adds screen rendering metrics support for Jetpack Compose screens in APM.

Enhancements

  • Resolves a security warning by replacing dynamically built SQL statements with parameterized queries in the SDK's internal storage.

  • Improves user event identifier validation: identifiers are now trimmed, sanitized against control characters, and capped at 200 characters.

v19.9.2

Enhancements

  • Improves the reliability of WebView network monitoring so it stays fully transparent to the page's own fetch / XMLHttpRequest requests.

v19.9.1

Enhancements

  • [Internal] Enhances SDK internal analytics

v19.9.0

Enhancements

  • Flags GraphQL network logs as partial success when a request returns an HTTP 2xx response that still contains a non-empty errors array — catching GraphQL calls that look successful but partially failed. Flagged logs are marked with a Partial success badge in Bug Reports, Session Replay, and Crashes.

  • Improves SDK network efficiency.

v19.8.0

Features

  • Added the ability to start a new session on logout so each user identity gets an isolated session, ensuring activity is attributed to the correct user. This is disabled by default — reach out to customer support team to enable it.

Bug Fixes

  • Fixes a rare ANR that could occur at crash time due to a lock-ordering deadlock while a session was being ended.

  • Fixes SDK diagnostic events — including network and Session Replay logs — being silently dropped on obfuscated (release) builds.

  • Fixes an empty (0-byte) luciq_config.json bundled in the SDK that could break post-build security / app-shielding tools.

v19.7.1

Features

  • Adds the setCapturingContainerEnabled API to control whether container screens (Activities, Fragments, and DialogFragments) generate Repro Steps screenshots.

Bug Fixes

  • Fixes a rare crash during screenshot capture when an Activity is being destroyed.

v19.7.0

Features

  • Adds the setViewsContentCaptureEnabled API to redact User Steps and Repro Steps content.

  • Adds support for params in user events.

  • Adds a Gradle configuration to automatically capture Jetpack Compose screens as APM screens.

luciq {
  showAutoComposableAsScreen = true
}

Enhancements

  • Adds support for per-variant Luciq app tokens in the luciq-crash Gradle plugin.

  • Optimizes console log lock contention that could block the main thread and cause ANRs.

Bug Fixes

  • Fixes an ANR caused by thread-safety race in OkHttp network logging under concurrent traffic.

  • Fixes data capture in the inapp_webview plugin by instrumenting WebView subclasses.

  • Fixes OOM crashes in long background sessions by applying backoff on sync failure.

v19.6.0

New Features

  • Track user actions in React Native WebViews

  • Support Screen Loading For React Native

Enhancements

  • Improve Accessibility in Bug Reporting screen

Bug Fixes

  • Fix host app crashes caused by RxJava UndeliverableException

  • Fix deadlock between the APM ServiceLocator.class monitor and Kotlin lazy internal locks which causes ANR in Flutter apps.

  • Fix memory leak in screen rendering caused by an unbounded per-instance map and prevent Window/Activity retention

v19.5.1

Bug Fixes

  • Fixes an ANR that could occur when non-HTTP URL connections, such as classpath resource loading via Kotlin reflection, were being intercepted by the network monitor.

  • Fixes an ANR that could occur when using the OkHttp network interceptor due to concurrent access from multiple threads during a network call.

v19.5.0

New Features

  • Adds support for branching in Custom Surveys.

  • Adds NDK symbol upload Gradle task for automated symbol file (.so) upload during the build process.

luciq {
   crashReporting {
       appToken = "APP_TOKEN"
       ndkSymbol {
           autoUploadEnabled = true
           apiKey = "API_KEY"
       }
   }
}

Enhancements

  • Adds support for excluding custom URL patterns from OkHttp response body capture.

luciq {
   networkInterception {
       enabled = true
       excludeUrlPatterns = listOf(".*chat/stream.*", ".*/events.*", ".*/notifications/live.*")
       okHttp {
           it.enabled = true
       }
   }
}

Bug Fixes

  • Fixes OkHttp interceptor breaking streaming/chunked HTTP responses (SSE/event-stream) by skipping response body buffering for streaming content types.

v19.4.1

Bug Fixes

  • Fix host app crashes caused by RxJava UndeliverableException

  • Fix memory leak in screen rendering caused by an unbounded per-instance map and prevent Window/Activity retention

v19.4.0

Features & Enhancements

  • Adds satellite network type detection for Session Profiler and APM network logs, providing better visibility into network connectivity.

  • Adds Multi-window support in Surveys and Announcements.

  • Adds support for Compose BOM version 2026.03.00 (Compose 1.10.5).

  • Improved internal SDK logging and error handling to reduce noise.

v19.3.0

Features

  • Custom Spans in APM: Adds support for CustomSpan tracking with explicit start and end times.

// Start custom span
val span: CustomSpan? = APM.startCustomSpan(name: string)
// ... do work ...
span?.end()  //end custom span
// Save completed custom span with known start and end date
APM.addCompletedCustomSpan(name: String, startDate: Date, endDate: Date)

Enhancements

  • Adds default masking for WebView content to enhance privacy protection.

  • Reduces unnecessary error log output when reporting non-fatal exceptions.

  • Changes the ADB debug property key from debug.instabug.apm.app to debug.luciq.app. The old property is still supported as a fallback.

Bug Fixes

  • Fixes an ANR caused by synchronous SharedPreferences access in the APM ContentProvider during app startup.

  • Fixes an ANR caused by Firebase initialization deadlock when Firebase Performance SDK is enabled.

  • Fixes a crash that occurs under certain conditions when invoking the SDK via the Floating Action Button.

  • Fixes malformed JSON in crash reports when message content exceeds size limits.

  • Fixes an issue where ScreenRendering traces were incorrectly attributed in specific scenarios.

  • Fixes a crash in Replies UI that occurs under certain conditions when the screen is closed unexpectedly.

v19.2.2

Enhancements

  • Adds LogLevel.WARNING log level for filtering SDK warning logs. This is now the default log level.

  • Resolves a security warning by replacing raw SQL construction with parameterized queries in internal diagnostics storage.

Bug Fixes

  • Fixes a build-time crash in the Gradle plugin when logging ASM bytecode transformations for certain ClassVisitor types.

  • Fixes an issue where user steps data scraping captured incorrect view IDs for legacy views inside private scope containers.

  • Fixes a crash that could occur when displaying chat messages with a null attachment type.

  • Fixes potential null pointer exceptions in bug reporting UI when fragment views are accessed after destruction.

v19.2.1

Bug Fixes

  • Fixes an issue where the bug report form could sometimes open twice after a single shake gesture.

  • Fixes an issue where surveys and announcements being obscured by the system navigation bar on certain devices.

  • Fixes an issue where canceled network requests being incorrectly logged as errors when using the OkHttp interceptor.

  • Fixes a crash that could occur when accessing device storage on devices where external storage is temporarily unavailable.

  • Fixes NPE error log that could occur during URL connection interception for certain URL types (JAR, file protocols).

v19.2.0

Features

  • WebView Monitoring: Added comprehensive WebView monitoring to capture performance metrics, user interactions, and network requests from WebView components.

    • New API: Luciq.setWebViewMonitoringEnabled(boolean)

    • New API: Luciq.setWebViewUserInteractionsTrackingEnabled(boolean)

    • New API: Luciq.setWebViewNetworkTrackingEnabled(boolean)

    • New build configuration: luciq { webViewsTrackingEnabled = true }

  • Notification Icon Color API: Introduces Replies.setNotificationIconColor() to customize the background color of notification icons.

Replies.setNotificationIconColor(Color.RED)

Enhancements

  • Adds defensive validation to prevent sending corrupt app version data under certain conditions.

Bug Fixes

  • Fixes a race condition that could cause duplicate chat sync network requests.

  • Fixes an issue where proactive bug reporting does not trigger after user termination.

  • Fixes a bug causing logs and attachments to go missing with NDK crash reports.

  • Fixes ProtectionLayout appearing repeatedly on each interaction with Composables when using androidx.core:core-ktx v1.16.0+.

  • Fixes button text color in chats to ensure proper visibility.

  • Fixes alert dialogs appearing with a white background in dark mode when using a custom theme.

v19.1.0

Features

  • Session Replay Screenshot Quality Control: New API to adjust the visual quality of captured screenshots.

SessionReplay.setScreenshotQuality(ScreenshotQuality.NORMAL)
  • Video-like Session Replay (Experimental): Capture screenshots based on user interactions or at fixed intervals for a video-like playback experience.

@OptIn(ExperimentalVideoLikeReplay::class)
fun configureVideoLikeSessionReplay() {
    SessionReplay.setCapturingMode(CapturingMode.FREQUENCY)
    SessionReplay.setScreenshotCaptureInterval(500)
}

Enhancements

  • Feature Flags' keys and values limits are now server-side configurable.

  • Introduces actionable user consents for Bug Reporting with a new ActionType.NO_AUTOMATIC_BUG_GROUPING action type.

BugReporting.addUserConsent(
    "grouping-consent",
    "Allow grouping similar bugs",
    false, true,
    ActionType.NO_AUTOMATIC_BUG_GROUPING
)

Bug Fixes

  • Fixes a bug where keyboard open/close detection caused cyclic onGlobalLayout callbacks when adjusting the bottom sheet margin in Bug Reporting.

v19.0.1

Bug Fixes

  • Fixes a critical incompatibility with Jetpack Compose v1.9.0+ that could prevent exceptions and crashes from being propagated.

v19.0.0

Breaking Changes

  • Introducing a new, single network interceptor with automatic instrumentation for OkHttp and native UrlConnection.

// Project-level build.gradle
plugins {
    id("ai.luciq.library") version "$luciqVersion" apply false
}
// app-level build.gradle
plugins {
    id("luciq")
}
luciq {
    networkInterception {
        enabled = true
    }
}
  • Revamped APM's UI Hangs with slow and frozen frames metric.

// Deprecated:
APM.setUIHangEnabled()
// Replace with:
APM.setScreenRenderingEnabled()

Bug Fixes

  • Fixed a race condition causing android.database.sqlite.SQLiteConstraintException error to be logged under certain conditions.

v18.2.1

Enhancements

  • Cleaned up and refined logging levels for non-critical events.

Bug Fixes

  • Fixed incorrect UI translation when the device locale is set to Portuguese (Brazil) pt_BR.

  • Fixed Out of Memory (OOM) issues during chat messages synchronization by optimizing memory allocation and resource management.

v18.2.0

Enhancements

  • Added support for app variant targeting in Surveys and Announcements.

new Instabug.Builder(this, "APP_TOKEN")
    .setAppVariant("App1")
    .build();
  • Increased character limit for disclaimer and consent fields in bug reporting to 200 chars.

Bug Fixes

  • Fixed an issue that caused missing screenshots in Repro Steps for Flutter apps.

  • Fixed an issue where the first UI trace wasn't inserted into the database, leading to SqliteConstraintException logs.

  • Fixed an issue where a white box covered the bug description field on small-screen devices.

  • Fixed a Disk Read StrictMode violation that occurred when attaching images from the gallery in Bug Reporting.

  • Fixed an issue where BugReporting.setDisclaimerText() did not apply if called immediately after SDK initialization.

v18.1.0

Enhancements

  • Adds test tags support for Compose v1.7.+

  • Adds support for Apollo v4

Bug Fixes

  • Fixes missing request and response headers in NetworkLogSnapshot when using APM.registerNetworkLogsListener(listener).

  • Fixes header changes done using APM.registerNetworkLogsListener(listener) not being applied to the captured network data.

  • Fixes attributes added using OnNetworkTraceListener.addAttributesOnFinish() are not added in some cases.

v18.0.1

Enhancements

  • Optimizes SDK's UncaughtExceptionHandler operations to prevent ANRs from occurring while the application is exiting (crashing).

  • Mutes a few diagnostics logs to reduce noise in the logcat.

Bug Fixes

  • Fixes an issue where features cache was being stored before features states were properly consumed, which could lead to inconsistent SDK behavior.

  • Fixes an issue with email format validation causing malformed emails to be sent with crash reports.

  • Fixes a crash (ActivityNotFoundException) encountered while attaching extra images to bug reports via Android's new photo picker on some devices.

  • Fixes a race condition that causes chats synchronization request to get fired while chats being disabled with Replies APIs.

  • Fixes an issue that causes interactions tracking for Jetpack Compose screens to yield inaccurate results when an overlay Composable is present.

v18.0.0

Breaking Changes

  • SDK rebranded from Instabug to Luciq. To migrate, visit the migration guide for guidance.

Last updated