Quick answer: Custom Interpolator types must match between vertex write and fragment read. Add the block in Vertex context, write to it from a vertex-stage source, and read it in Fragment context. Requires URP 12+/HDRP recent version.

Here is how to fix Unity Shader Graph Custom Interpolator nodes that error on compile or fail to deliver values to the fragment stage. The interpolator is a vertex-fragment bridge with strict type requirements.

The Symptom

You add a Custom Interpolator block to the Vertex output, connect a Vector3, then read the same Vector3 in Fragment. Compile produces type mismatch or missing block errors.

What Causes This

Vertex/fragment type mismatch. The block stores one type; reading a different type errors.

SRP version too old. Custom Interpolators arrived in URP 12. Older URP / Built-in does not support them.

Wrong stage write. Trying to write the interpolator from a fragment-stage node fails; only vertex stage writes.

The Fix

Step 1: Add the block in Vertex context. Drag a Custom Interpolator from the Master Stack into the Vertex output. Set its name and type (Vector3).

Step 2: Wire vertex-stage data into it.

// In Vertex context
Position (Object) -> Add (offset) -> CustomInterpolator (Vector3)

Step 3: Read in Fragment context. The interpolator name appears as an input in the Fragment block. Drag it into your fragment math.

Step 4: Match types exactly. Define as Vector3, read as Vector3. Vector4 storing a Vector3 wastes a slot but compiles; Float storing a Vector3 errors.

Step 5: Update URP if needed.

// Window -> Package Manager -> URP -> Update
// URP 12+ supports Custom Interpolators

Mobile / Console Limits

GPUs have finite interpolator slots. Each Vector4 = 1 slot; Vector3 = 1 slot (rounded up). 4–8 custom interpolators is typically safe; more may exceed mobile limits.

“Vertex writes. Fragment reads. Same type. Modern URP. Bridge works.”

Related Issues

For Shader Graph time, see Time Node Build. For vertex displacement, see Vertex Position.

Type match. Vertex writes. Fragment reads. Modern URP. Compiles clean.