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
-
Docker
stable-11146: upgrade the release bundle tostable-11248. Follow upgrade Docker Jitsi, preserving configuration and passwords. Match release files and tags. For stock Jibri and Jigasi transcription overlays: [S8][S9][S12]Terminaldc() { docker compose -f docker-compose.yml -f jibri.yml -f transcriber.yml "$@" } dc pull dc up -d dc imagesRun from the deployment directory, with your actual overlays. Check the created containers’ image tags are
stable-11248. [S8][S12] -
Docker
stable-11248: enable your installed services in.env. This exposes features without installing Jibri or a transcription backend: [S8][S9]dotenvENABLE_RECORDING=1 ENABLE_SERVICE_RECORDING=1 ENABLE_LIVESTREAMING=1 ENABLE_TRANSCRIPTIONS=1 DISABLE_LOCAL_RECORDING=0In this release’s template, recording, streaming and transcription default to false; service recording inherits
ENABLE_RECORDING; local recording is not disabled by default. [S8] -
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]JavaScriptconfig.transcription = { ...config.transcription, autoTranscribeOnRecord: false };This disables automatic transcription without patching the dialog. Docker’s
AUTO_CAPTION_ON_RECORDwritestranscription.autoCaptionOnRecord, while the helper readstranscription.autoTranscribeOnRecord. Use the explicit key. Remove any conflicting legacy top-levelautoCaptionOnRecord, which overrides it during migration. [S7][S8]Apply
.envchanges and regenerate the web configuration using the same helper: [S9][S12]Terminaldc up -d dc up -d --force-recreate web -
Debian/Ubuntu, Meet 11146: upgrade to 11248. With the official stable repository configured, review changes before confirming: [S4][S10][S13]
Terminalsudo apt-get update sudo apt-get install --only-upgrade jitsi-meet dpkg-query -W -f='${Package} ${Version}\n' jitsi-meet jitsi-meet-webFor 11248 packages with those backends installed, merge these assignments into
/etc/jitsi/meet/meet.example.com-config.js, then reload: [S7][S10]JavaScriptconfig.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.jskey11248 default or fallback Effect transcription.enabledfalse Exposes transcription capability. [S7] transcription.autoTranscribeOnRecordHelper falls back to true when unset Requests transcription automatically where permitted; the commented example says false, so set it explicitly. [S7] recordingService.enabledfalse Offers the server file recording service. [S7] recordingService.hideStorageWarningfalse Hides applicable storage warning text; does not change storage or retention. [S7] localRecording.disablefalse Disables browser recording when true. [S7] localRecording.notifyAllParticipantsfalse Enables local-recording notifications to others. [S7] localRecording.disableSelfRecordingfalse Disables recording only your own streams. [S7] liveStreaming.enabledfalse Exposes live streaming. [S7] recordings.suggestRecordingUnset is falsy Enables the suggestion, subject to state checks. [S3][S7] recordings.recordAudioAndVideotrue, subject to recording permission Default recording choice in the dialog. [S6][S7] asyncTranscriptionis room metadata, notconfig.jsor a Docker switch. When truthy, middleware skips transcriber dialing and uses backend metadata handling; absent takes the non-async path. Settingconfig.asyncTranscriptioncannot configure that backend. [S11] -
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]
jitsi-meet 2.0.11248-1
jitsi-meet-web 1.0.9442-1For 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]