BabylonJS/Babylon.js · error · Error
Could not find data in connection with unique id ${serialize
Error message
Could not find data in connection with unique id ${serializedConnection} What it means
Thrown by ParseFlowGraph while reconnecting data outputs: a data output's connectedPointIds contains an id that has no matching data input in the dataInMap. Parsing stops because the graph topology cannot be reconstructed.
Source
Thrown at packages/dev/core/src/FlowGraph/flowGraphParser.ts:245
return;
}
connection.connectTo(connectedConnection);
};
for (const block of blocks) {
for (const dataIn of block.dataInputs) {
for (const serializedConnection of dataIn.connectedPointIds) {
const connection = dataOutMap.get(serializedConnection);
if (!connection) {
throw new Error("Could not find data out connection with unique id " + serializedConnection);
}
connectIfNeeded(dataIn, connection);
}
}
for (const dataOut of block.dataOutputs) {
for (const serializedConnection of dataOut.connectedPointIds) {
const connection = dataInMap.get(serializedConnection);
if (!connection) {
throw new Error("Could not find data in connection with unique id " + serializedConnection);
}
connectIfNeeded(dataOut, connection);
}
}
if (block instanceof FlowGraphExecutionBlock) {
for (const signalOut of block.signalOutputs) {
for (const serializedConnection of signalOut.connectedPointIds) {
const connection = signalInMap.get(serializedConnection);
if (!connection) {
throw new Error("Could not find signal in connection with unique id " + serializedConnection);
}
connectIfNeeded(signalOut, connection);
}
}
for (const signalIn of block.signalInputs) {
for (const serializedConnection of signalIn.connectedPointIds) {
const connection = signalOutMap.get(serializedConnection);
if (!connection) {View on GitHub (pinned to 0592b347b8)
Solutions
- Re-serialize the graph from the current library version
- Include all blocks that own referenced data inputs in the serialization
- Remove or correct dangling connectedPointIds entries in the JSON
- Pre-validate that every data-output connection id maps to an existing data input uniqueId
Example fix
// before
{ "dataOutputs": [{ "name": "out", "connectedPointIds": ["deletedInput"] }] }
// after
{ "dataOutputs": [{ "name": "out", "connectedPointIds": [] }] } Defensive patterns
Strategy: validation
Validate before calling
function validateOutConnections(serialized: any): string[] {
const inIds = new Set(
serialized.blocks.flatMap((b: any) => (b.dataInputs ?? []).map((i: any) => i.uniqueId))
);
return serialized.blocks
.flatMap((b: any) => b.dataOutputs ?? [])
.flatMap((o: any) => o.connectedPointIds ?? [])
.filter((id: string) => !inIds.has(id));
} Type guard
function allOutRefsResolve(serialized: any): boolean {
const ins = new Set(serialized.blocks?.flatMap((b: any) => b.dataInputs?.map((i: any) => i.uniqueId) ?? []) ?? []);
return serialized.blocks?.every((b: any) =>
(b.dataOutputs ?? []).every((o: any) => (o.connectedPointIds ?? []).every((id: string) => ins.has(id)))
) ?? false;
} Try / catch
try {
const graph = ParseFlowGraph(serialized, coordinator);
} catch (e) {
if (String(e.message).startsWith('Could not find data in connection')) {
// dangling data-output reference; re-export the graph or drop the connection
}
} Prevention
- Include every target block in serialized payloads so inputs are registered
- Pre-validate data-output connection ids against existing data-input ids
- Re-export graphs from the editor after renaming or removing block inputs
When it happens
Trigger: Parsing a serialized flow graph where some dataOut.connectedPointIds references a data-input uniqueId that is missing from dataInMap (target block absent, input renamed/removed, or edited serialization).
Common situations: Graph serialized in a newer library version where an input was removed or renamed; manual JSON edits; blocks deleted leaving dangling connections; payload truncated during storage/transport.
Related errors
- Could not find data out connection with unique id ${serializ
- Could not find signal input with name ${name} in block ${cla
- Could not find signal output with name ${name} in block ${cl
- Cannot compare ${a} and ${b}
- Cannot get NaN of ${a}
AI-assisted analysis of BabylonJS/Babylon.js@0592b347b8 (2026-08-30).
Data as JSON: /api/errors/e7b729d2e7ed7534.
Report an issue: GitHub.