Why does Jitsi transcription disable live streaming or recording?

Short answer

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]

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, preserving configuration and passwords. Match release files and tags. For stock Jibri and Jigasi transcription overlays: [S8][S9][S12]

    Terminal
    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]

    JavaScript
    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]

    Terminal
    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]

    Terminal
    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]

    JavaScript
    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 or 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 or our transcription service.

Sources

[S1] Issue #17732, 2026-08-18, community report; later comments describe storage and metadata regressions.

[S2] Issue #17731, 2026-08-18, community report; closed through #17733.

[S3] Issue #17852 and maintainer’s resolution, 2026-09-20 and 2026-09-24, community report and maintainer comment.

[S4] PR #17733, merged 2026-08-19, source code; official web changelog and Docker release, 2026-09-14, release notes.

[S5] PR #17877, opened 2026-09-24, proposed source code and maintainer comments; open and unmerged when checked 2026-10-12.

[S6] Meet 11248 dialog selection, offered services, recording helpers and transcription state, 2026-09-14 snapshot, source code.

[S7] Meet 11248 config examples, recording helpers, suggestion actions and config migration, 2026-09-14 snapshot, source code.

[S8] Docker 11248 settings template, startup script and Compose file, 2026-09-14 snapshot, source code.

[S9] Docker handbook, checked 2026-10-12, official doc.

[S10] Stable package index, checked 2026-10-12, official repository metadata; web-config installer, 2026-09-14 snapshot, source code.

[S11] Meet 11248 subtitles middleware and room metadata documentation, 2026-09-14 snapshot, source code.

[S12] Docker Compose images, pull, up and logs, checked 2026-10-12, official docs.

[S13] Debian apt-get and dpkg-query, 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]

Written by the Jitsi Help engineering team

Jitsi infrastructure engineers who deploy and run Jitsi Meet servers in production. Last updated . How we write our guides

Did this fix it?

Something on this page is outdated or wrong?

Collect debug info

These commands gather what an engineer needs to diagnose a Jitsi server. Copy them, run them, and keep the output.

Terminal
# Run on the server, from your docker-jitsi-meet folder

# 1. Every service should be "running" (or "healthy")
docker compose ps

# 2. Which images and release tags are running
docker compose images

# 3. Recent logs from the core services
docker compose logs --tail=200 web prosody jicofo jvb

# 4. The settings most fixes depend on
grep -E '^(PUBLIC_URL|JVB_ADVERTISE_IPS|ENABLE_LETSENCRYPT|ENABLE_AUTH|AUTH_TYPE)=' .env

# 5. Is anything listening for media on UDP 10000?
sudo ss -ulnp | grep 10000

Installed with the Debian packages instead of Docker? Read the service logs with:

Terminal
sudo journalctl -u prosody -u jicofo -u jitsi-videobridge2 --since "1 hour ago"

Remove passwords, secrets and tokens before you share any output.

Send the output to an engineer

Discussion

    Stuck, or would rather not do this by hand?

    Deploy it in one click

    A private Jitsi server in your own AWS account with SSL, your domain and optional recording, transcription and JWT. Free 15 minute trial.

    Start free trial

    Talk to a Jitsi engineer

    Setup, fixes, branding, recording, scaling. Tell us what is happening and we reply with a plan and a quote.

    Get expert help

    Related

    Recently updated