--- description: How bug reports and agent Engineering flags stay on an Air-gapped self-managed deployment, how to download them in a Diagnostic export, what the export contains, and how to configure the support channel. --- # Bug reports and Diagnostic export !!! info "Availability" - **Who can do this:** members with the **Manage organization** capability for the organization can download the Diagnostic export. Any member can report a bug. - **Deployment:** Air-gapped self-managed deployments only. Connected deployments have no Diagnostic export. On an Air-gapped deployment, bug reports and agent Engineering flags aren't sent to Actian. They stay in your installation's database. When you want Actian to look at them, an administrator downloads a *Diagnostic export*, reviews it, and hands it to Actian. ## What gets stored On an Air-gapped deployment, the support channel is `local`: - **Bug reports**: members report bugs from the Studio sidebar or the Steward chat. Each report is stored in the product database. It's also recorded in the organization's audit log. - **Engineering flags**: the AI Analyst and Steward agents can record an Engineering flag when they hit a product problem that your data team can't fix, such as a defect or a gap in their tools. Engineering flags are stored the same way. AI Analyst doesn't send these reports anywhere, and there is no support chat. Reports reach Actian only when someone hands over a Diagnostic export. See [Connected and Air-gapped deployments](network-posture.md) for how Air-gapped is enforced. ## Report a bug Any member can report a bug: 1. In the Studio sidebar, under **Resources**, select **Report a Bug**. 2. Describe what you did, what you expected and what happened. 3. Select **Submit report**. On an Air-gapped deployment, the dialog explains: *Your report stays on this installation; an administrator includes it in the diagnostic export for Actian.* After you submit, you see **Thanks! Your bug report has been saved.** In the Steward chat, the **Report a problem** button (bug icon) in the panel header also files a report. It attaches the current Steward session, and the report is stored the same way. ## Download a Diagnostic export The Diagnostic export has no button in the web app. You download it from the API, signed in as a member with the **Manage organization** capability. The export covers the organization you're signed in to, across all its Environments. On a deployment with several organizations, each organization needs its own export. The export works even when the Licence has expired, when the organization's access is blocked, and when the organization is pending deletion. Those are often the moments you need Actian's help. ### Step 1: Copy your access token The API accepts your sign-in session, not an organization API key. 1. Sign in to AI Analyst in a browser as a member with **Manage organization**. 2. Open the browser's developer tools and go to the **Network** tab. 3. Reload the page and select any request to `/api/`. 4. In the request headers, copy the value of `auth-key`. This is your access token. !!! warning "Treat the token as a password" The access token lets anyone act as you until it expires. Don't paste it into tickets or chat, and don't save it in scripts. If a request returns `401`, the token has expired: copy a fresh one. ### Step 2: Download the file Call the endpoint with two headers. `auth-provider` is always `auth0`, even on a Keycloak deployment. ```sh curl -fsS -OJ \ -H "auth-provider: auth0" \ -H "auth-key: " \ https:///api/support/diagnostic-export ``` - `-OJ` saves the file under the name the server gives it, `ai-analyst-diagnostic-export-.zip`. - The path above assumes the API is served under `/api`, as in the Compose bundle and the Helm Air-gapped example. - If your deployment uses the proxy's internal CA (the Compose bundle default), pass that CA to curl with `--cacert root.crt`. See [Install with Docker Compose](install-docker-compose.md). | Response | Meaning | |---|---| | `200` and a ZIP file | The export is ready. | | `401` | The token is missing or has expired. | | `403` | You don't have the **Manage organization** capability. | | `404` | The deployment isn't Air-gapped, so the endpoint doesn't exist. | ## What's in the export The ZIP file holds three JSON files: | File | Contents | |---|---| | `manifest.json` | When the export was generated, the network posture and the deployment's `ENVIRONMENT` value (for example `production`), versions (Release version, commit, server, database schema and Node.js), health (whether the database was reachable, and server uptime), and how many bug reports and Engineering flags are included. Some values can be empty. | | `bug-reports.json` | One entry per bug report: its ID, time, Environment ID, the text the member wrote, the page URL, and the Steward session and turn IDs when there are any. | | `engineering-flags.json` | One entry per Engineering flag: its ID, time, Environment ID, which agent recorded it (AI Analyst or Steward), the agent's summary and context, and the session and turn IDs. | ### What's left out The export doesn't include organization or member names, email addresses, or who filed each report. It reads nothing from tables derived from your warehouses. !!! warning "Review the export before you send it" The export includes free text exactly as it was written: what members typed in their bug reports, and the summaries and context the agents wrote in Engineering flags. If that text contains names, email addresses or data values, they go out with the export. It also includes page URLs and internal IDs. Open the three files and check them before you hand the export over. ## Send the export to Actian AI Analyst never sends the export itself. Carry the file out of your network following your own data-transfer process, and send it to your Actian support contact. ## Configure the support channel Two server settings control in-app support: | Setting | Values | Effect | |---|---|---| | `SUPPORT_ENABLED` | Unset (on), `false` or `0` (off) | Turns in-app support on or off. Only `false` or `0` turn it off; values such as `off` or `no` leave it on. When it's off, **Report a Bug** and **Support** disappear from the Studio sidebar. | | `SUPPORT_CHANNEL` | `local` or `managed` | Where bug reports and Engineering flags go. When unset, it's `local` on Air-gapped deployments and `managed` on Connected ones. | On an Air-gapped deployment: - `SUPPORT_CHANNEL=managed` stops the server from starting. Use `local`, or leave it unset. - Setting any Intercom key or `SLACK_FEEDBACK_WEBHOOK_URL` also stops the server from starting. - `SUPPORT_ENABLED=false` stops members from filing bug reports, but agents still record Engineering flags, and the Diagnostic export stays available. !!! note "Compose bundle" The Compose bundle doesn't pass `SUPPORT_ENABLED` or `SUPPORT_CHANNEL` from `.env` to the server, so out of the box the server uses its defaults: support on, with the `local` channel. With the Helm chart, set these in the server Secret. ### Connected deployments On a Connected deployment with the `managed` channel, bug reports and Engineering flags are posted to the webhook in `SLACK_FEEDBACK_WEBHOOK_URL`, when it's set. - **A bug report** carries the reporter's email address, the page URL, the organization and Environment IDs, any Steward session and turn IDs, and the description. When an Intercom key is set, the reporter's email address is also passed to Intercom to open a ticket. - **An Engineering flag** carries the agent loop, the organization and Environment IDs, the session and turn IDs, and the agent's summary and context. `SUPPORT_ENABLED=false` removes **Report a Bug** and **Support**, but it doesn't stop Engineering flags from being recorded or posted. A Connected deployment can also set `SUPPORT_CHANNEL=local` to keep bug reports on the installation, but the Diagnostic export isn't available there, so there is no built-in way to hand those reports to Actian. See [Connected and Air-gapped deployments](network-posture.md). ## Troubleshooting **Members don't see Report a Bug.** In-app support is off (`SUPPORT_ENABLED=false` or `0`). Turn it back on, then restart the server. **The server won't start and the log mentions `SUPPORT_CHANNEL` or a vendor-hosted key.** On an Air-gapped deployment, remove `SUPPORT_CHANNEL=managed`, any Intercom key and `SLACK_FEEDBACK_WEBHOOK_URL`. **The export request returns 404.** The endpoint exists only on Air-gapped deployments. Check that `NETWORK_POSTURE` is `air-gapped`, and that the URL includes your API path prefix (normally `/api`). **The export request returns 403.** Ask an Administrator to give you the **Manage organization** capability, or ask someone who has it to download the export.