# 7. VFX Graph Pitfalls
Part of [[VFX Graph]]. Previous: [[6. VFX Graph Performance and Quest]].
> [!note] Verification status
> Items 2-7 are stated in the 17.5 Requirements and Component API pages (2026-11-10); the rest are general practice. **Code not compiled in Unity.**
1. **Effect vanishes when its origin is off-screen.** Bounds too small. Record bounds or set Manual bounds to the full reach.
2. **Nothing renders on some Android devices.** OpenGL ES isn't supported - use Vulkan, and gate with `SystemInfo.supportsComputeShaders && maxComputeBufferInputsVertex > 0`.
3. **Colors look wrong / effect missing in URP.** Gamma color space isn't supported in URP. Use Linear.
4. **String property names every frame.** Least optimized path; use `ExposedProperty` or `Shader.PropertyToID` statics.
5. **"My event didn't do anything this frame."** Events are processed in the component's next update, **after LateUpdate**. Don't expect same-frame results.
6. **`aliveParticleCount` lies (briefly).** It updates asynchronously about once per second. Use `HasAnySystemAwake()` to decide when an effect is done.
7. **Payload changes after sending.** Safe - the payload is copied on `SendEvent`. Creating a new `VFXEventAttribute` per event is the waste, not reusing one.
8. **Event attribute from another graph.** A `VFXEventAttribute` is compatible with the graph it was created for; after swapping `visualEffectAsset`, create a new one.
9. **GPU event children stop spawning.** Child capacity too small for parent capacity x trigger count.
10. **Instantiating a VisualEffect per hit.** Use one service instance + events, or pool (part 3).
11. **Leaked GraphicsBuffers.** Release in `OnDisable`/`OnDestroy`; with Domain Reload disabled in Enter Play Mode Options, leaks persist across plays.
12. **Expecting particle collisions in C#.** GPU collisions don't call scripts. Raycast in gameplay code and *then* send the VFX event.
13. **Huge capacity "just in case".** Capacity allocates memory up front.
14. **Output event handlers missing `canExecuteInEditor`.** It's abstract on `VFXOutputEventAbstractHandler`; your class won't compile without it.
15. **Quest frame drops from one fancy effect.** Profile on device; keep a Particle System fallback.