> For the complete documentation index, see [llms.txt](https://docs.luciq.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.luciq.ai/kmp/setup-luciq-for-kmp/setup-bug-reporting/bug-reporting-callbacks.md).

# Bug Reporting Callbacks

You can react to bug reporting lifecycle events using Kotlin `Flow`s and (for report submission) `LuciqKmp.onReportSubmit`.

### Before the UI is shown

`BugReportingKmp.onInvoke` emits when the bug reporting UI is about to be shown. Use it to prepare state or analytics:

{% code title="Kotlin" %}

```kotlin
scope.launch {
    BugReportingKmp.onInvoke.collect {
        // e.g. pause game, track analytics
    }
}
```

{% endcode %}

### When the UI is dismissed

`BugReportingKmp.onDismiss` emits when the user closes the bug reporting UI. You get how it was dismissed and the report type:

{% code title="Kotlin" %}

```kotlin
scope.launch {
    BugReportingKmp.onDismiss.collect { (dismissType, reportType) ->
        when (dismissType) {
            DismissType.Submit -> { /* user submitted */ }
            DismissType.Cancel -> { /* user cancelled */ }
            DismissType.AddAttachment -> { /* user is adding attachment */ }
        }
    }
}
```

{% endcode %}

### Prompt option selected (iOS)

On iOS, `BugReportingKmp.onPromptOptionSelected` emits when the user selects an option from the prompt menu (e.g. Report a bug, Feedback, Question):

{% code title="Kotlin" %}

```kotlin
scope.launch {
    BugReportingKmp.onPromptOptionSelected.collect { reportType ->
        // reportType is the chosen ReportType
    }
}
```

{% endcode %}

This is a no-op on Android.

### Before report is submitted

To modify or observe reports before they are sent, use `LuciqKmp.onReportSubmit`. Each emitted `Report` contains: `tags`, `userAttributes`, `fileAttachments`, `consoleLogs`, and `luciqLogs` (logs sent via `LuciqKmp.logVerbose` / `logDebug` / etc.):

{% code title="Kotlin" %}

```kotlin
scope.launch {
    LuciqKmp.onReportSubmit.collect { report ->
        // report.tags, report.userAttributes, report.fileAttachments,
        // report.consoleLogs, report.luciqLogs
    }
}
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.luciq.ai/kmp/setup-luciq-for-kmp/setup-bug-reporting/bug-reporting-callbacks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
