# Unity face filter sample browser stuck loading,

**URL:** <https://forum.needle.tools/t/unity-face-filter-sample-browser-stuck-loading/2902>\
**Category:** 🌵 Needle Engine\
**Tags:** question\
**Created:** [October 1, 2026, 9:51am UTC](https://forum.needle.tools/t/unity-face-filter-sample-browser-stuck-loading/2902 "2026-10-01T09:51:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![winson\_xie](https://forum.needle.tools/user_avatar/forum.needle.tools/winson_xie/32/5028_2.png) [@winson\_xie](https://forum.needle.tools/u/winson_xie)\
**Post date:** [October 1, 2026, 9:51am UTC](https://forum.needle.tools/t/unity-face-filter-sample-browser-stuck-loading/2902/1 "2026-10-01T09:51:31Z")

</div>

Hello I am new to needle and I have been trying to load the example sample for the unity face filter for a uni project.

However I am stuck on this white screen forever loading.  
This is also the case for localhost:3000.

 ![image](https://forum.needle.tools/uploads/default/original/2X/4/43c9b8ce2fcbcee26d7f5bb34fbd47308516aba2.png)

Things to note are:

- I am using the non-commercial license.

- I am using unity version 6000.0.82f1.

- I downloaded the Needle package from the needle tools unity guide.

- I have deleted com.needle.face-filter-1.0.0-beta.12  
in C:\Users\name\My project\Packages but kept the below 1.0.4 version.

- I updated to the 6.0.0-alpha.3 version of the needle and unity engine while trying to troubleshoot.

- I am using node v22.20.0

- I have tried using OperaGX and Chrome but both have the same issue.

- I am not using a vpn or any proxy.

- I am connected to my router via an ethernet powerline adapter.

- I have reinstalled Unity 3 times.

- I can’t paste the entire console log but here is the only error:

```auto
Saving Prefab to immutable folder is not allowed: Packages/com.needle.face-filter/Examples/Alien Face Mask.prefab
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()

```

There are many npm warns above this and if it helps I can provide the screenshots.

Here is the cmd console log:

```auto
> my-needle-engine-project@1.0.0 dev
> vite --host

[needle-reload]
Build directory: dist
[needle-defines]
Needle Engine Version: 6.0.0-alpha.3 Unity 6000.0.82f1, Needle Engine Integration @6.0.0-alpha.3
[needle-editor-sync]
@needle-tools/editor-sync is not installed: Add the "Needle Editor Sync" component to your scene if you want to send changes directly from the Unity Editor to web app
[needle-identifier]
INFO: Fetching project identifier...
[needle-dependencies]
Adding @sparkjsdev/spark to the optimizeDeps.exclude array to support workers.
three-examples core dirs: controls, exporters, geometries, helpers, interactive, libs, lights, lines, loaders, objects, renderers, shaders, utils, webxr
Vite 8+ detected
[needle-license]
INFO: Fetching license...
INFO: Successfully received "BASIC" license
[needle-ai]
Installed for 1 agent: Codex / Universal (22 reference files downloaded)
[needle:dts-generator]
Discovered 1 GLB(s):
  C:\Users\Winso\My project\Library\Needle\Sample\assets\Needle Face Filter Examples.glb
up-to-date → .\node_modules\@needle-tools\engine\.needle\generated\needle-bindings.gen.d.ts
[needle-copy-files]
Clearing target directory "dist/assets"
Copying assets: assets → dist/assets
Include: include → dist/include
Copied files: 18, 22.79 MB
[needle-dependency-watcher]
Watching project C:\Users\Winso\My project\Library\Needle\Sample\package.json

  VITE v8.3.1 ready in 8168 ms

  ➜ Local: https://localhost:3000/
  ➜ Network: https://10.0.1.23:3000/ Ethernet 2
  ➜ press h + enter to show help
7:33:35 pm [vite] (client) [optimizer] bundling dependencies...

```

Thank you for the help and kind regards to Needle dev team and community helpers.

---

<div class="post-metadata">

**Author:** ![needle-assistant](https://forum.needle.tools/user_avatar/forum.needle.tools/needle-assistant/32/3415_2.png) [@needle-assistant](https://forum.needle.tools/u/needle-assistant)\
**Post date:** [October 1, 2026, 9:51am UTC](https://forum.needle.tools/t/unity-face-filter-sample-browser-stuck-loading/2902/2 "2026-10-01T09:51:33Z")

</div>

That prefab error is the clue — you’re not hitting a loading bug, Unity is failing to save the sample. The face-filter examples live inside the read-only package folder (`Packages/com.needle.face-filter/Examples/...`), so nothing gets written and the scene never properly exports — you just get the blank loader.

Drag the example scene out of the package into your project’s `Assets` folder and re-export.

One more thing worth fixing: you bumped Needle to `6.0.0-alpha.3` but kept face-filter `1.0.4` — those aren’t a matched pair. Go back to the stable engine release that matches your face-filter version.

Still blank after a clean re-export? Send a bug report (`Needle Engine > Report a Bug`) or a URL — the white screen alone doesn’t show the real runtime error.

Sources: [Needle Engine Docs](https://engine.needle.tools/docs/why.html#:~:text=Getting%20Started%20%E2%80%94%20pick%20Unity%2C%20Blender%2C%20or%20code.) (64%), [Needle Engine Docs](https://engine.needle.tools/docs/tutorials/scripting-walkthrough.html#:~:text=Learn%20Needle%20Engine%20scripting%20one%20idea%20at%20a%20time.) (63%), [Needle Engine Docs](https://engine.needle.tools/docs/reference/faq.html#:~:text=The%20bottom-center%20toolbar%20is%20the%20NeedleMenu.) (61%), [Needle Engine Docs](https://engine.needle.tools/docs/unity/#:~:text=Installation%20steps%3A) (60%), [Needle Engine Docs](https://engine.needle.tools/docs/how-to-guides/scripting/examples.html#:~:text=That's%20the%20whole%20model%3A%20components%20on%20objects%2C%20a%20lifecycle%2C%20and%20a%20context%20they) (60%), [Needle Engine Docs](https://engine.needle.tools/docs/how-to-guides/deployment/playable-ads/wechat-mini-games.html#:~:text=game.json%20is%20missing) (57%), [Needle Engine Docs](https://engine.needle.tools/docs/explanation/core-concepts/project-structure.html#:~:text=assets%2FMyScene.glb) (57%), [Needle Engine Docs](https://engine.needle.tools/docs/#:~:text=Build%203D%20web%20experiences%20that%20work%20everywhere.) (56%), [Needle Engine Docs](https://engine.needle.tools/docs/products/needle-mesh-baker.html#:~:text=The%20page%20must%20load%20first.) (55%), [Needle Engine Docs](https://engine.needle.tools/docs/three/#:~:text=Enhanced%20Developer%20Experience%3A) (55%)

_1 replies left_ - **[Become PRO](https://needle.tools/pricing)** for more replies.  
_**Reply to this post directly if you need further help (bottom right button)**_

---

<div class="post-metadata">

**Author:** ![winson\_xie](https://forum.needle.tools/user_avatar/forum.needle.tools/winson_xie/32/5028_2.png) [@winson\_xie](https://forum.needle.tools/u/winson_xie)\
**Post date:** [October 1, 2026, 3:47pm UTC](https://forum.needle.tools/t/unity-face-filter-sample-browser-stuck-loading/2902/3 "2026-10-01T15:47:08Z")

</div>

Hi all, I’m posting an update for how I resolved the issue in case it help others, and in case the sample or templates could be updated.

Setup

- Windows, Unity 6000.0.82f1, Node v22.20.0, BASIC (non-commercial) license
- Web project in Library/Needle/Sample
- Face filter: Unity side uses the local tarball com.needle.face-filter-1.0.0-beta.12.tgz (the registry returns an authentication error for com.needle.face-filter). Web side: @needle-tools/facefilter 1.0.4 from npm.

Symptoms and causes

1. Infinite white screen on engine 5.1.14 / 6.0.0-alpha.3 with Vite 8  
The dev server stopped at “bundling dependencies…” and the page never loaded. The default sandbox worked. I didn’t find the exact cause. It went away after I moved to the combination below.

2. Build error on engine 5.1.14: “hasProLicense is not exported”  
This appeared when building with the facefilter package, so it looks like a version mismatch between the facefilter package and the engine. It disappeared on engine 4.10.2.

3. Unity kept resolving the engine to 5.1.2  
com.needle.engine-samples 1.5.1 depends on com.needle.engine-exporter 5.1.2, which overrode my manifest.json entry of 4.10.2. I had to remove com.needle.engine-samples from Packages/manifest.json, delete Packages/packages-lock.json and reopen Unity.

4. Build error on engine 4.10.2 with Vite 8: “Failed to convert builtin plugin ‘ViteAlias’”  
Fixed with: npm i -D vite@7 (7.3.6). The FAQ currently says recent engine versions need Vite 8+, which seems to be true for 5.x but not for 4.10.2.

5. Runtime errors on engine 4.10.2 / Vite 7

- ReferenceError: Cannot access ‘\_ShaderToyFaceFilter’ before initialization

- TypeError: Cannot read properties of undefined (reading ‘\_\_internalAwake’)

- warnings about “@serializable without a target” and “Unknown components in scene”  
My tsconfig.json already had experimentalDecorators: true, but the facefilter package ships TypeScript source (main: index.ts) under node\_modules, and my guess is the project tsconfig isn’t applied to those files, so the decorators were compiled incorrectly. Setting tsconfigRaw directly in vite.config.js fixed it:

```auto
  esbuild: {
    tsconfigRaw: { compilerOptions: { experimentalDecorators: true, useDefineForClassFields: false } },
  },
  optimizeDeps: {
    esbuildOptions: {
      tsconfigRaw: { compilerOptions: { experimentalDecorators: true, useDefineForClassFields: false } },
    },
  },

```

Working combination

- @needle-tools/engine 4.10.2 (Unity package and npm)
- Vite 7.3.6, @vitejs/plugin-basic-ssl 2.3.0
- @needle-tools/facefilter 1.0.4 (npm), Unity face-filter package from the local beta.12 tarball
- Needle Engine Samples package removed
- tsconfigRaw added to vite.config.js as above  
With this the camera permission prompt appears and the face filter runs.

---

<div class="post-metadata">

**Author:** ![system](https://forum.needle.tools/user_avatar/forum.needle.tools/system/32/20_2.png) [@system](https://forum.needle.tools/u/system)\
**Post date:** [October 14, 2026, 3:47pm UTC](https://forum.needle.tools/t/unity-face-filter-sample-browser-stuck-loading/2902/4 "2026-10-14T15:47:26Z")

</div>

Closed on October 14, 2026, 3:47pm UTC

This topic was automatically closed 13 days after the last reply. New replies are no longer allowed.
