Diagnostic step 1
Inspect denials with 'journalctl -k' and 'journalctl -e' and copy the exact AppArmor denial lines (include executable path, requested syscall, and device path) for diagnosis.
Generated Oct 3, 2026, 12:35:03 AM
Inspect denials with 'journalctl -k' and 'journalctl -e' and copy the exact AppArmor denial lines (include executable path, requested syscall, and device path) for diagnosis.
Run 'snap connections <snap-name>' and confirm 'camera' shows as connected; if it does not, run 'sudo snap connect <snap-name>:camera' and re-test (this is reversible).
Use 'aa-status' to confirm AppArmor is enabled and look up the profile name shown in the DENIED messages; temporarily set that profile to complain mode with 'sudo aa-complain <profile>' to test whether AppArmor is the blocker (reversible, but do not leave in complain mode in production).
Check /dev entries and symlinks: 'ls -l /dev/video*' and compare the path in the denial to the actual device node; add a persistent udev rule to create a stable symlink if path differences are observed.
If running the snap in devmode fixes the issue, file a bug with snapd including the journal/AppArmor denials and kernel version; attach captures from 'snap connections', 'aa-status', and the denial lines. As a temporary alternative, use a non-snap package (apt/flatpak) that uses the portal system (flatpak) for camera access. Escalate to the distribution/snapd maintainers with the denial logs and kernel version if the above diagnostics show a policy mismatch that you cannot safely override.