Context
Batch of documentation gaps found during a week of hardware-in-the-loop integration. Each cost us hours to diagnose; each is a one-paragraph docs fix. Filing as one issue to keep tracking light — happy to split if preferred.
Items
-
xrGetSystem error -35 (FORM_FACTOR_UNAVAILABLE) outside the example entry points. The Quest 3 device profile (default.env) is only injected via the examples' entry points; constructing device configs directly from the library fails with -35 and no hint. Docs should state where the profile comes from and how library consumers inject it (or the library path should inject it too).
-
CloudXR single-session constraint + stale runtime state. Launching a second session kills the first with a broken pipe; after a crash, stale state in ~/.cloudxr/run/ must be cleaned manually before relaunch. A docs note (or a stale-lock check at startup) would remove a recurring operator trap.
-
HEVC over WebRTC is not available on Chrome/Linux. Chrome skips NVIDIA devices in VA-API (NVDEC unused), so the web client's HEVC path cannot work on this platform; ?codec=av1 works. Platform limitation — one line in the docs saves users a day of codec debugging.
-
Environment-variable skip paths should announce themselves. Example: with LEROBOT_CLOUDXR_SKIP_AUTOLAUNCH set and no manual runtime running, the failure mode is a bare NV_CXR_RUNTIME_DIR is not set — the skip itself only logs at info, i.e., invisibly. Intentional no-op safety paths should log at WARNING.
-
Example scripts in script mode. Relative imports without a parent package and importlib.resources.files(__package__) fail when examples are run directly (python teleoperate.py) rather than as a package. We fixed our copies with dual-mode import guards — pattern worth adopting repo-wide or documenting.
-
BUILD_VIZ=ON pitfalls. GLFW configure fails without wayland-scanner (workaround: -DGLFW_BUILD_WAYLAND=OFF); the stubgen post-build step breaks when an active virtualenv leaks into uv run (workaround: unset VIRTUAL_ENV). Both worth guarding in CMake or noting in build docs.
Part of the field-integration feedback series (SO-101 + reBot DevArm, June 29 – July 6). Priority suggestion: P2.
Context
Batch of documentation gaps found during a week of hardware-in-the-loop integration. Each cost us hours to diagnose; each is a one-paragraph docs fix. Filing as one issue to keep tracking light — happy to split if preferred.
Items
xrGetSystemerror -35 (FORM_FACTOR_UNAVAILABLE) outside the example entry points. The Quest 3 device profile (default.env) is only injected via the examples' entry points; constructing device configs directly from the library fails with -35 and no hint. Docs should state where the profile comes from and how library consumers inject it (or the library path should inject it too).CloudXR single-session constraint + stale runtime state. Launching a second session kills the first with a broken pipe; after a crash, stale state in
~/.cloudxr/run/must be cleaned manually before relaunch. A docs note (or a stale-lock check at startup) would remove a recurring operator trap.HEVC over WebRTC is not available on Chrome/Linux. Chrome skips NVIDIA devices in VA-API (NVDEC unused), so the web client's HEVC path cannot work on this platform;
?codec=av1works. Platform limitation — one line in the docs saves users a day of codec debugging.Environment-variable skip paths should announce themselves. Example: with
LEROBOT_CLOUDXR_SKIP_AUTOLAUNCHset and no manual runtime running, the failure mode is a bareNV_CXR_RUNTIME_DIR is not set— the skip itself only logs atinfo, i.e., invisibly. Intentional no-op safety paths should log at WARNING.Example scripts in script mode. Relative imports without a parent package and
importlib.resources.files(__package__)fail when examples are run directly (python teleoperate.py) rather than as a package. We fixed our copies with dual-mode import guards — pattern worth adopting repo-wide or documenting.BUILD_VIZ=ON pitfalls. GLFW configure fails without
wayland-scanner(workaround:-DGLFW_BUILD_WAYLAND=OFF); the stubgen post-build step breaks when an active virtualenv leaks intouv run(workaround:unset VIRTUAL_ENV). Both worth guarding in CMake or noting in build docs.Part of the field-integration feedback series (SO-101 + reBot DevArm, June 29 – July 6). Priority suggestion: P2.