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

  1. Re-serialize the graph from the current library version
  2. Include all blocks that own referenced data inputs in the serialization
  3. Remove or correct dangling connectedPointIds entries in the JSON
  4. 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

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


AI-assisted analysis of BabylonJS/Babylon.js@0592b347b8 (2026-08-30). Data as JSON: /api/errors/e7b729d2e7ed7534. Report an issue: GitHub.