# Why does Jitsi transcription disable live streaming or recording?

> Meet 11248 fixes transcription blocking streaming and hiding local recording. For its remaining storage-selection bug, explicitly choose Local recording during streaming; PR #17877 remains unmerged as of 2026-10-12. Transcription suppressing the recording suggestion is expected behavior. [S1][S2][S3][S4][S5]

Source: https://jitsi.help/troubleshooting/transcription-blocks-live-stream-recording/
Updated: October 12, 2026
Publisher: Jitsi Help (https://jitsi.help/)

## Symptoms

Match your symptom to its release: [S1][S2][S3][S5]

| Behavior | Reported version | Status checked 2026-10-12 |
| --- | --- | --- |
| Meeting transcription disables live streaming; streaming also blocks Record & Transcribe | Meet 2.0.11146, #17732 | Fixed by #17733, released in 11248. [S1][S4] |
| Local recording disappears after starting meeting transcription | Meet 2.0.11146, #17731 | Fixed by #17733, released in 11248. [S2][S4] |
| Recording suggestion is absent despite `recordings.suggestRecording: true` | Meet 2.0.11248, #17852 | Maintainer closed it as expected behavior. [S3] |
| During streaming, storage shows Local recording but Start requests `mode: 'file'` | `stable-11248` and then-current master | Follow-up PR #17877 remains open. [S5] |

No common backend error accompanies these UI reports. The storage mismatch was demonstrated with mocked calls, not a live Jibri session. [S1][S2][S3][S5]

## Cause

The old streaming button checked transcription state, and the transcription-only dialog omitted local recording. PR #17733 removed the guard and restored the content. It merged August 19, 2026; the official 11248 changelog lists it. [S4]

Jibri handles server recording and streaming. The 11248 dialog excludes server recording and Dropbox during streaming, but can retain `selectedRecordingService = 'recording-service'`. The selector displays Local recording while Start uses the stale selection. PR #17877 proposes correcting this mismatch. [S5][S6]

The suggestion intentionally counts meeting transcription as recording, confirmed by maintainer damencho September 24. Captions alone differ: `isRecorderTranscriptionsRunning` also requires `metadata.recording.isTranscribingEnabled`. [S3][S6]

`stable-11248`, released September 14, remains latest when checked October 12. It includes #17733; the still-unmerged #17877 has no confirmed release. [S4][S5]

## Fix

1. **Docker `stable-11146`: upgrade the release bundle to `stable-11248`.** Follow [upgrade Docker Jitsi](/guides/upgrade-jitsi-docker/), preserving configuration and passwords. Match release files and tags. For stock Jibri and Jigasi transcription overlays: [S8][S9][S12]

   ```sh
   dc() {
       docker compose -f docker-compose.yml -f jibri.yml -f transcriber.yml "$@"
   }
   dc pull
   dc up -d
   dc images
   ```

   Run from the deployment directory, with your actual overlays. Check the created containers' image tags are `stable-11248`. [S8][S12]

2. **Docker `stable-11248`: enable your installed services in `.env`.** This exposes features without installing Jibri or a transcription backend: [S8][S9]

   ```dotenv
   ENABLE_RECORDING=1
   ENABLE_SERVICE_RECORDING=1
   ENABLE_LIVESTREAMING=1
   ENABLE_TRANSCRIPTIONS=1
   DISABLE_LOCAL_RECORDING=0
   ```

   In this release's template, recording, streaming and transcription default to false; service recording inherits `ENABLE_RECORDING`; local recording is not disabled by default. [S8]

3. **Docker `stable-11248`: set automatic-transcription policy.** Merge this into `${CONFIG}/web/custom-config.js`, readable by uid 1000. Startup appends it after generated configuration: [S8][S9]

   ```js
   config.transcription = {
       ...config.transcription,
       autoTranscribeOnRecord: false
   };
   ```

   This disables automatic transcription without patching the dialog. Docker's `AUTO_CAPTION_ON_RECORD` writes `transcription.autoCaptionOnRecord`, while the helper reads `transcription.autoTranscribeOnRecord`. Use the explicit key. Remove any conflicting legacy top-level `autoCaptionOnRecord`, which overrides it during migration. [S7][S8]

   Apply `.env` changes and regenerate the web configuration using the same helper: [S9][S12]

   ```sh
   dc up -d
   dc up -d --force-recreate web
   ```

4. **Debian/Ubuntu, Meet 11146: upgrade to 11248.** With the official stable repository configured, review changes before confirming: [S4][S10][S13]

   ```sh
   sudo apt-get update
   sudo apt-get install --only-upgrade jitsi-meet
   dpkg-query -W -f='${Package} ${Version}\n' jitsi-meet jitsi-meet-web
   ```

   For 11248 packages with those backends installed, merge these assignments into `/etc/jitsi/meet/meet.example.com-config.js`, then reload: [S7][S10]

   ```js
   config.recordingService = { ...config.recordingService, enabled: true };
   config.liveStreaming = { ...config.liveStreaming, enabled: true };
   config.localRecording = { ...config.localRecording, disable: false };
   config.transcription = { ...config.transcription, enabled: true, autoTranscribeOnRecord: false };
   ```

   | `config.js` key | 11248 default or fallback | Effect |
   | --- | --- | --- |
   | `transcription.enabled` | false | Exposes transcription capability. [S7] |
   | `transcription.autoTranscribeOnRecord` | Helper falls back to true when unset | Requests transcription automatically where permitted; the commented example says false, so set it explicitly. [S7] |
   | `recordingService.enabled` | false | Offers the server file recording service. [S7] |
   | `recordingService.hideStorageWarning` | false | Hides applicable storage warning text; does not change storage or retention. [S7] |
   | `localRecording.disable` | false | Disables browser recording when true. [S7] |
   | `localRecording.notifyAllParticipants` | false | Enables local-recording notifications to others. [S7] |
   | `localRecording.disableSelfRecording` | false | Disables recording only your own streams. [S7] |
   | `liveStreaming.enabled` | false | Exposes live streaming. [S7] |
   | `recordings.suggestRecording` | Unset is falsy | Enables the suggestion, subject to state checks. [S3][S7] |
   | `recordings.recordAudioAndVideo` | true, subject to recording permission | Default recording choice in the dialog. [S6][S7] |

   `asyncTranscription` is room metadata, not `config.js` or a Docker switch. When truthy, middleware skips transcriber dialing and uses backend metadata handling; absent takes the non-async path. Setting `config.asyncTranscription` cannot configure that backend. [S11]

5. **Both install types, 11248:** explicitly select Local recording during streaming before Start, a workaround verified with mocked calls. Open the dialog manually when suggestions are suppressed. On 11146 awaiting upgrade, stop transcription before using blocked controls, sacrificing simultaneous operation. [S1][S2][S3][S5]

## Verify

For packages, the version query should print these lines for the cited release: [S10][S13]

```text
jitsi-meet 2.0.11248-1
jitsi-meet-web 1.0.9442-1
```

For either installation, inspect the browser Network response for `https://meet.example.com/config.js`: expect `autoTranscribeOnRecord: false`. Check the loaded client version separately; configuration cannot prove patched code is served. [S7][S8][S10]

As moderator, test transcription then streaming, and the reverse. Test local recording during transcription. On 11248, reselect Local recording during streaming, stop it and play the download. Success requires actual output, not an enabled button. These proposed checks were not run on our server. [S1][S2][S5]

## If it still fails

Local recording requires browser support and excludes cross-origin embedding; test the meeting directly. Jibri file recording being unavailable during streaming is expected. [S6]

For Docker 11248, inspect `dc logs --tail=100 web jicofo jibri transcriber`. The browser-console prefix `Error dialing` indicates a transcription invitation failure. Use [transcription not working](/troubleshooting/jitsi-transcription-not-working/) or [recording not working](/troubleshooting/jitsi-recording-not-working/) for backend diagnosis. [S8][S11][S12]

PR #17877 proposes metadata and notification fixes for local recording and failed invitations. Starting another transcription over a captions transcriber is unsupported. [S5]

## FAQ

### Does stable-11248 need PR #17877?

It already contains the original #17733 fixes. The remaining storage-selection and notification cases are covered by the unmerged #17877; no stable release containing it was confirmed. [S4][S5]

### Does local recording need Jibri?

No. It runs in the browser, subject to support and embedding restrictions. Server recording and live streaming use Jibri. [S2][S5][S6]

### Will hideStorageWarning fix missing recording options?

No. It controls warning text, not available recording services or transcription state. [S7]

### Why is the recording suggestion still missing after upgrading?

Meeting transcription intentionally suppresses it. `recordings.suggestRecording: true` does not override that state check. [S3][S7]

For transcription setup, use the [Vosk guide](/guides/jitsi-transcription-vosk/) or our [transcription service](/services/jitsi-transcription/).

## Sources

[S1] [Issue #17732](https://github.com/jitsi/jitsi-meet/issues/17732), 2026-08-18, community report; later comments describe storage and metadata regressions.

[S2] [Issue #17731](https://github.com/jitsi/jitsi-meet/issues/17731), 2026-08-18, community report; closed through #17733.

[S3] [Issue #17852](https://github.com/jitsi/jitsi-meet/issues/17852) and [maintainer's resolution](https://github.com/jitsi/jitsi-meet/issues/17852#issuecomment-5817687619), 2026-09-20 and 2026-09-24, community report and maintainer comment.

[S4] [PR #17733](https://github.com/jitsi/jitsi-meet/pull/17733), merged 2026-08-19, source code; [official web changelog](https://github.com/jitsi/jitsi-meet-release-notes/blob/master/CHANGELOG-WEB.md) and [Docker release](https://github.com/jitsi/docker-jitsi-meet/releases/tag/stable-11248), 2026-09-14, release notes.

[S5] [PR #17877](https://github.com/jitsi/jitsi-meet/pull/17877), opened 2026-09-24, proposed source code and maintainer comments; open and unmerged when checked 2026-10-12.

[S6] Meet 11248 [dialog selection](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/recording/components/Recording/AbstractStartRecordingDialog.ts), [offered services](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/recording/components/Recording/AbstractStartRecordingDialogContent.tsx), [recording helpers](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/recording/functions.ts) and [transcription state](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/transcribing/functions.ts), 2026-09-14 snapshot, source code.

[S7] Meet 11248 [config examples](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/config.js), [recording helpers](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/recording/functions.ts), [suggestion actions](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/recording/actions.any.ts) and [config migration](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/base/config/reducer.ts), 2026-09-14 snapshot, source code.

[S8] Docker 11248 [settings template](https://github.com/jitsi/docker-jitsi-meet/blob/stable-11248/web/rootfs/defaults/settings-config.js), [startup script](https://github.com/jitsi/docker-jitsi-meet/blob/stable-11248/web/rootfs/etc/s6-overlay/scripts/config) and [Compose file](https://github.com/jitsi/docker-jitsi-meet/blob/stable-11248/docker-compose.yml), 2026-09-14 snapshot, source code.

[S9] [Docker handbook](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/), checked 2026-10-12, official doc.

[S10] [Stable package index](https://download.jitsi.org/stable/Packages), checked 2026-10-12, official repository metadata; [web-config installer](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/debian/jitsi-meet-web-config.postinst), 2026-09-14 snapshot, source code.

[S11] Meet 11248 [subtitles middleware](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/react/features/subtitles/middleware.ts) and [room metadata documentation](https://github.com/jitsi/jitsi-meet/blob/stable/jitsi-meet_11248/resources/prosody-plugins/README.md), 2026-09-14 snapshot, source code.

[S12] Docker Compose [images](https://docs.docker.com/reference/cli/docker/compose/images/), [pull](https://docs.docker.com/reference/cli/docker/compose/pull/), [up](https://docs.docker.com/reference/cli/docker/compose/up/) and [logs](https://docs.docker.com/reference/cli/docker/compose/logs/), checked 2026-10-12, official docs.

[S13] Debian [apt-get](https://manpages.debian.org/bookworm/apt/apt-get.8.en.html) and [dpkg-query](https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html), checked 2026-10-12, official manuals.

## Open questions

No live recording tests were run. PR #17877 needs end-to-end validation and a confirmed release. Browser, mobile and custom-deployment behavior needs separate testing. [S1][S2][S5]

---

Jitsi Help is an independent service. It is not affiliated with, endorsed by or sponsored by 8x8, Inc. or the Jitsi project. Jitsi and Jitsi Meet are trademarks of 8x8, Inc., used here only to describe the software we host and support.
