Skip to main content

Troubleshooting

"thread constructor failed: Resource temporarily unavailable"

The WASM thread pool hit the browser's Web Worker limit. This can happen when loading many avatars rapidly. The ThreadManager queues excess tasks, but if thread creation itself fails, the counter self-corrects. Reduce concurrent avatar loads or increase the browser's worker limit.

"memory access out of bounds" on controller.update()

A controller's native C++ object was freed but JS still holds a reference. Ensure you null controller references after dispose() or unload(). Never call methods on a disposed controller.

Silhouette appears but avatar never loads

Check the browser console for WASM errors. Common causes:

  • Missing or expired bearer token (setBearerToken())
  • Network errors fetching assets
  • Asset definition has invalid asset IDs

Shaders not applying

Ensure mgr.setTarget(mesh) is called before enabling effects. For multi-avatar, make sure you're not calling detachTarget() without reattachTarget().

SharedArrayBuffer not available

Your server must send COOP/COEP headers:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp