Skip to content

Docs batch: xrGetSystem -35 profile injection, CloudXR single-session/stale-lock, HEVC on Chrome/Linux, silent env-flag skips, script-mode examples, BUILD_VIZ pitfalls #736

Description

@johnnynunez

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

  1. 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).

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    TBD

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions