# 9. Quest 2 Pitfalls
Part of [[Meta Quest 2]]. Requires Unity 6.3 LTS (6000.3.27f2) and newer. Previous: [[8.Quest 2 Changelog]].
> [!important] Version requirement
> Unity 6.3 LTS (6000.3.27f2) and newer.
## 9.1 Build and store
| Pitfall | Symptom | Fix |
|---|---|---|
| Unity's Meta Quest profile targets **API 32** | Store rejects a new app; Meta requires 34 for apps created since 2026-03-01 | Set Target API Level to 34 ([[3.Quest 2 Project and Build Setup]]) |
| Both Oculus and OpenXR providers enabled | Duplicate tracking, black screen, or wrong controller profile | Enable **OpenXR** only on Android; the Oculus XR Plugin is deprecated |
| Missing the Touch controller profile | Controllers are not tracked | Add **Oculus Touch Controller Profile** |
| `debuggable=true` or wrong manifest in the submitted build | Fails VRC.Quest.Packaging.1 | Release build + inspect the merged manifest |
| 32-bit build | Fails VRC.Quest.Packaging.6 | IL2CPP + ARM64 only |
| Missed 72 Hz | Fails VRC.Quest.Performance.1; discomfort | Measure on device; lower content or use ASW |
| Render scale below 0.85 | VRC.Quest.Performance.4 (recommended) | Fix content, not render scale |
| `Shader.Find` at runtime | Pink or missing materials in builds (shader stripped) | Reference materials or use the pipeline default material, as the worked example does |
| Using SDK features newer than v213 on Quest 2 | Feature missing or broken | Check Meta release notes per feature; test on device ([[1.Quest 2 Support Status]]) |
## 9.2 Rendering
| Pitfall | Fix |
|---|---|
| Application SpaceWarp does nothing | It needs Vulkan, URP Render Graph (not compatibility mode), OpenXR 1.11+, URP 17.0.3+ |
| ASW artifacts | Missing motion vectors on moving or transparent objects; test, or turn ASW off |
| Text shimmer or blur at panel edges | Foveation level too high; increase font size ([[8.UI Toolkit for VR]]) |
| Post-processing, HDR, depth texture left on | Disable in the Quest URP asset ([[3.Quest 2 Project and Build Setup]]) |
| Editing `renderScale` at runtime in the editor | Persists in the URP asset; the profile script skips it in the editor |
## 9.3 Input and UI
| Pitfall | Fix |
|---|---|
| UI Toolkit panel ignores input over Link | Click the **Game view** to focus it (XRI docs) |
| Ray passes through UI Toolkit panel | Panel needs a collider (Collider Update Mode) and `XRUIToolkitManager` in the scene |
| Panel Input Configuration missing | Add it and set **No input redirection** |
| `UIDocument` added after interactable registered | Add the UIDocument first (XRI docs) |
| Poke finishes instantly | Use **Match 3-D bounding box** instead of Match 2-D rect |
| Panel buttons work with ray but not with ISDK | ISDK's UI integration is uGUI-only; use XRI or the render-texture fallback ([[8.UI Toolkit for VR]]) |
| `PanelRenderer` vs `UIDocument` | This series uses `UIDocument` with a World Space Panel Settings asset (Unity 6.3 LTS). `PanelRenderer` exists from 6000.5 and newer docs mark `UIDocument` obsolete; `PanelRenderer` behaviour with XRI is unverified |
| Text fields without a keyboard | Enable **System Keyboard** under Meta Quest Support; untick Hide Soft Keyboard/Hide Mobile Input |
| Head-locked menus | VRC.Quest.Functional.10 recommends avoiding them; use world-space panels |
| Hand-tracking system gesture triggers actions | Reserved by the system (VRC.Quest.Input.8) |
## 9.4 Passthrough and MR on Quest 2
| Pitfall | Fix |
|---|---|
| Expecting color passthrough | Quest 2 is black and white, low-res, with close-range distortion; branch on `SupportsColorPassthrough` ([[6.Quest 2 Input Hands and Passthrough]]) |
| Expecting occlusion/depth or scene meshes | Not on Quest 2; design without them or target Quest 3 |
| Passthrough launch behaviour | VRC.Quest.Functional.14: apps that can launch in passthrough must show passthrough loading screens |
## 9.5 Testing
| Pitfall | Fix |
|---|---|
| Only tested in the simulator or Link | The desktop GPU hides thermal and fill-rate issues; test on the headset ([[4.Quest 2 Testing and Deployment]]) |
| Simulator shows the wrong device | Set **Inputs > Device = Quest 2**, then re-enter Play mode |
| `adb devices` is empty | Developer Mode, USB debugging prompt in the headset, a data cable, and on Windows the ADB driver |
## Official references
- [Meta: VRC guidelines](https://developers.meta.com/horizon/resources/publish-quest-req/)
- [XRI: UI Toolkit support](https://docs.unity3d.com/Packages/
[email protected]/manual/ui-world-space-ui-toolkit-support.html)
- [Unity: Configure the Meta Quest build profile](https://docs.unity3d.com/6000.3/Documentation/Manual/xr-meta-quest-build-profile.html)
Back to [[Meta Quest 2]]