[UE 5.8.3][PCG] Sanity Check Point Data forwards Overrides Attribute Set to Point-only output, causing persistent warnings

Summary

Sanity Check Point Data forwards its Overrides Attribute Set through its Point-only output, producing an unnecessary type warning even when point-count validation succeeds. The warning propagates to calling subgraphs, making genuine new warnings harder to identify.

What Type of Bug are you experiencing?

World Creation Tools

Steps to Reproduce

  1. Enable the PCG plugin and create a PCG graph.
  2. Create a known number of points and connect them to the In pin of Sanity Check Point Data.
  3. Create an Attribute Set containing integer attributes named MinPointCount and MaxPointCount. Set both values to the number of input points.
  4. Connect this Attribute Set to the sanity check node’s Overrides pin.
  5. Connect the sanity check node’s Out pin to the graph output.
  6. Generate the graph and inspect the sanity check node’s warning.
  7. Optionally call this graph as a subgraph from another PCG graph and generate again to observe the warning propagating to the caller.

Expected Result

When the input point count satisfies the overridden minimum and maximum, validation should succeed without warnings. The Out pin should forward only the checked point data from In. The Attribute Set supplying settings overrides should not be emitted through the Point-only output.

Observed Result

Validation succeeds, but the node also forwards the Overrides Attribute Set through Out, producing this warning:

“Output data generated for pin ‘Out’ does not have a compatible type: ‘Attribute Set’. Consider using more specific/narrower input pin types, or more general/wider output pin types.”

The warning also appears on calling subgraph nodes. Adding Filter Data By Type after the sanity check removes the extra Attribute Set for downstream consumers but does not eliminate the original warning.

Affects Versions

5.8

Platform(s)

Windows

Upload an image

Additional Notes

I’m seeing this in Unreal Engine 5.8.3 on Windows.

I looked through the PCG source to understand why the warning occurs. In FPCGSanityCheckPointDataElement::ExecuteInternal, the successful-validation branch copies the entire input collection:

Context->OutputData = Context->InputData;

This is at line 83 in:
Engine/Plugins/PCG/Source/PCG/Private/Elements/PCGSanityCheckPointData.cpp

That appears to include the Attribute Set connected to Overrides, even though Out only accepts point data. The function already collects the In datasets into Sources before counting their points, so I think the successful branch should forward those instead:

Context->OutputData.TaggedData = MoveTemp(Sources);

I haven’t compiled or tested that change.

In my graph, I already have Filter Data By Type after the sanity check. It keeps the extra Attribute Set out of downstream nodes, but the warning still appears on the sanity check and its callers. With those callers always showing warning badges, it becomes harder to notice when something else actually needs attention.

I’d prefer to keep pin/type validation enabled rather than suppress this through pcg.debug.ValidateDataPinsAndTypes, since that would also hide useful diagnostics elsewhere.