AprilNEA/OpenLogi · error
no Logitech camera found
Error message
no Logitech camera found
What it means
The `openlogi camera` CLI needs a camera unique id; when the user does not pass one, it takes the first camera from `openlogi_camera::enumerate_cameras()`. If enumeration returns nothing, there is no default to act on and the command fails with `no Logitech camera found`.
Solutions
- Plug in a Logitech camera (directly, not through a hub) and re-run the command.
- Pass the device explicitly: `openlogi camera --camera <unique-id> ...`.
- On macOS, grant Camera permission to the terminal/OpenLogi (System Settings > Privacy & Security > Camera) and retry.
- Verify enumeration with a plain camera listing to confirm the device is detected as a Logitech UVC device.
Example fix
// before $ openlogi camera get no Logitech camera found // after $ openlogi camera get --camera BREC100-1234ABCD
Defensive patterns
Strategy: validation
Validate before calling
let cams = openlogi_camera::enumerate_cameras();
if cams.is_empty() {
eprintln!("no Logitech camera detected; connect one or pass --camera <id>");
std::process::exit(1);
} Try / catch
match enumerate_cameras().into_iter().next() {
Some(cam) => run_with(&cam.unique_id),
None => { eprintln!("no Logitech camera found — check connection and Camera permission"); std::process::exit(1); }
} Prevention
- Always pass `--camera <unique-id>` in scripts for deterministic behavior
- Confirm the device is a Logitech UVC camera and connected directly (not via hub)
- On macOS, grant Camera permission to the host terminal before enumerating
When it happens
Trigger: Running any `openlogi camera` subcommand without `--camera <id>` (or equivalent) on a machine where `enumerate_cameras()` yields zero Logitech UVC devices.
Common situations: No Logitech webcam is plugged in; the camera is attached through a dock/hub that hid it; on macOS the terminal or OpenLogi lacks Camera permission so enumeration sees nothing; the device is a non-Logitech webcam and thus filtered out.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- no Logitech camera found
- {e}
- unknown control ( )
- failed to enumerate HID++ devices for direct fixture capture
- . Candidates
AI-assisted analysis of AprilNEA/OpenLogi@e846e6f4b4 (2026-09-13).
Data as JSON: /api/errors/bcc310ccaf899eac.
Report an issue: GitHub.
Appendix: source
Thrown at crates/openlogi-cli/src/cmd/camera.rs:44
/// device.
Set {
/// zoom | focus | exposure | power_line_frequency |
/// low_light_compensation | brightness | contrast | saturation |
/// sharpness | white_balance | tint, or focus_auto | exposure_auto |
/// white_balance_auto
control: String,
value: i32,
},
}
pub fn run(args: CameraArgs) -> Result<()> {
let uid = match args.camera {
Some(id) => id,
None => openlogi_camera::enumerate_cameras()
.into_iter()
.next()
.map(|c| c.unique_id)
.ok_or_else(|| anyhow!("no Logitech camera found"))?,
};
match args.cmd.unwrap_or(CameraCmd::Get) {
CameraCmd::Get => {
println!("controls for {uid}:");
match openlogi_camera::read_camera_state(&uid) {
Ok(state) if !state.controls.is_empty() => {
for (control, r) in &state.controls {
println!(
" {}: min={} max={} default={} current={}",
control.name(),
r.min,
r.max,
r.default,
r.current
);
}
for (toggle, st) in &state.autos {View on GitHub (pinned to e846e6f4b4)