zed-industries/zed · error
Screen sharing was canceled, permission was denied, or the P
Error message
Screen sharing was canceled, permission was denied, or the PipeWire connection failed. You can try again from the screen share button.
What it means
Terminal failure of the Wayland capture setup in start_wayland_desktop_capture: the failure channel fired because the user canceled the portal dialog, denied permission, or the PipeWire connection dropped. No video source is available and sharing ends.
Source
Thrown at crates/livekit_client/src/livekit_client/linux.rs:191
});
let executor = cx.background_executor().clone();
let video_source = video_source_rx
.next()
.with_timeout(Duration::from_secs(PIPEWIRE_TIMEOUT_S), &executor)
.await
.map_err(|_| {
stop_flag.store(true, Ordering::Relaxed);
log::error!("Wayland desktop capture timed out.");
anyhow::anyhow!(
"Screen sharing timed out waiting for the first frame. \
Check that xdg-desktop-portal and PipeWire are running, \
and that your portal backend matches your compositor."
)
})?
.ok_or_else(|| {
stop_flag.store(true, Ordering::Relaxed);
anyhow::anyhow!(
"Screen sharing was canceled, permission was denied, or the PipeWire \
connection failed. You can try again from the screen share button."
)
})?;
let track = super::LocalVideoTrack(track::LocalVideoTrack::create_video_track(
"screen share",
RtcVideoSource::Native(video_source),
));
Ok((track, stop_flag, capture_task, failure_rx))
}
View on GitHub (pinned to f4178619ac)
Solutions
- Retry screen sharing and accept the portal permission prompt
- Restart PipeWire/xdg-desktop-portal if the connection keeps failing
- Check compositor logs for PipeWire/portal errors
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/livekit_client/src/livekit_client/linux.rs:191 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/976b0f87e696bf42.
Report an issue: GitHub.