Skip to content

Diagnosing a Rejected Home

xAstroBoy edited this page Jul 11, 2026 · 3 revisions

Diagnosing a Rejected Home (the Logcat tab)

When a cooked home doesn't appear — the headset stays on Haven 2025 / the default fog — the shell rejected your env and fell back to the device default (nuxd). The Logcat tab tells you the exact reason, and it works on a completely unrooted Quest: it's tethered adb only — no su, no Magisk, no custom firmware.

Why this works without root

The Quest's libshell logs its whole environment-load pipeline to Android's logcat. Two facts make it readable with no root:

  • adb runs as the shell user, which holds the READ_LOGS permission — so adb logcat sees everything the shell prints.
  • debug.logLevel is a plain debug system property the shell user is allowed to set, so the tool raises libshell to full verbosity (setprop debug.logLevel Verbose) with no root at all.

Steps

  1. Connect the Quest (USB or wireless adb). Developer Mode on, USB-debugging accepted. Make sure the Cook status line (or adb devices) shows the headset online.

  2. Open the Logcat tab. Streaming auto-starts at full verbosity.

  3. Click Reload home. This clears the log and restarts com.oculus.vrshell, so you capture the fresh env load from a clean slate.

  4. Read the cyan-highlighted EnvironmentSystem / EnvironmentManager lines:

    Line Meaning
    EnvironmentSystem: Loading hsr asset package '…' as Environment the shell picked up your package
    EnvironmentSystem: Scene loaded: apk://… ✅ it loaded — your home is live
    Environment failed to load … falling back to device default environment: '…nuxd…' rejected → the reason is on the lines just above
  5. The reason (right above the fallback line) is one of:

    • Asset ptr error when loading hsr asset package: '…', reason: … — a referenced asset failed; the reason: says which.
    • Failed to find '…' in zip from '…' — a file the env references isn't in the package.
    • LoadEntry not found for env url: '…' — the selected package/manifest couldn't be opened.
    • package type not supported for HSR ECS … / Hsr environment package path not valid …
    • MeshDefinition::fix() … / MaterialDefinition::fix() … — a cooked mesh/material is malformed.
    • Failed to deserialize asset manifest … — the assets.manifest header didn't validate.

Export & report

Click Export — it writes a self-contained quest_env_diag_<timestamp>.txt (and reveals it):

--- device (all read WITHOUT root) ---
model / Android version / adb-root / debug.logLevel
--- environment ---
resolved env, haven2025 install path, installed com.environment.* packages
--- VERDICT ---
REJECTED -> nuxd fallback.  Reason: EnvironmentSystem: Asset ptr error … reason: …
--- env-load log (adb logcat, NO root) ---
<the highlighted lines>

Attach that file on Discord / GitHub Issues — it pinpoints the cause so it can be fixed fast.

Controls

  • Start / Stop — the live stream (auto-starts when you open the tab).
  • Reload home — verbose + clear + restart the shell to capture a fresh load (no root).
  • Filter — cycles Env-load only ↔ vrshell ↔ EVERYTHING (everything = the full logcat).
  • Verbose — re-assert debug.logLevel Verbose (already done automatically).
  • Export — the shareable report above.

The tool column can be dragged wider (up to 75%) and docked on the left or right (the << / >> button on the tab strip) — handy for reading long log lines.

The install already tells you

After an unrooted Cook + Install, the tool auto-captures this and shows a one-line verdict in the status bar (and writes <apk>.loaddiag.txt next to the APK) — so you often don't even need to open the Logcat tab. Open it when you want the full picture or to Export a report.

Clone this wiki locally