Skip to content

[fal.ai] frame_processor: Pipeline setup fails with GraphConfig validation error — edges use 'source'/'target' but schema expects 'from'/'to_node' #895

@livepeer-tessa

Description

@livepeer-tessa

Summary

scope.server.frame_processor logs ERROR Pipeline setup failed: 8 validation errors for GraphConfig when a client sends edge definitions using old-style source/target keys instead of the current schema fields from, from_port, to_node, to_port.

Observed 4 times in the 12h window (2026-04-09 18:00 – 2026-04-10 06:00 UTC).

Error Details

From Grafana/Loki — 2026-04-09 ~23:09 UTC

scope.server.frame_processor - ERROR - Pipeline setup failed: 8 validation errors for GraphConfig

edges.0.from
  Field required [type=missing, input_value={'source': 'input', 'target': 'pipeline'}, input_type=dict]
edges.0.from_port
  Field required [type=missing, input_value={'source': 'input', 'target': 'pipeline'}, input_type=dict]
edges.0.to_node
  Field required [type=missing, input_value={'source': 'input', 'target': 'pipeline'}, input_type=dict]
edges.0.to_port
  Field required [type=missing, input_value={'source': 'input', 'target': 'pipeline'}, input_type=dict]
edges.1.from
  Field required [type=missing, input_value={'source': 'pipeline', 'target': 'output'}, input_type=dict]
edges.1.from_port
  Field required [type=missing, input_value={'source': 'pipeline', 'target': 'output'}, input_type=dict]
edges.1.to_node
  Field required [type=missing, input_value={'source': 'pipeline', 'target': 'output'}, input_type=dict]
edges.1.to_port
  Field required [type=missing, input_value={'source': 'pipeline', 'target': 'output'}, input_type=dict]

Timestamps: 2026-04-09 23:09:57, 23:12:44, 23:39:26, 23:45:02 UTC
fal_job_id: d35991f0-7869-44ca-88b4-1459ad9c7774
fal_app_name: scope-app--prod

Context

The client is sending edges as [{'source': 'input', 'target': 'pipeline'}, ...] — an older schema where edges were identified by source/target node names without port information.

The server-side GraphConfig pydantic model now requires from, from_port, to_node, to_port on each edge.

Despite the validation failure, the stream appears to start (pipeline loaded successfully just before), but frame_processor cannot set up processing — video output shows 0 frames published for the session duration.

Impact

  • Session starts but no frames are processed/output
  • 4 occurrences in 12h window — suggests multiple users on an older client version
  • Silent failure: user sees stream but no AI output

Possible Causes

  1. Client/server version skew — an older Scope desktop client sending the old edge schema to an updated cloud backend
  2. Missing schema migrationGraphConfig model doesn't include a backwards-compat source/target alias

Suggested Fix

Either:

  • Add pydantic alias/validator to accept both old (source/target) and new (from/to_node) edge schema formats
  • Or surface a clearer error to the client asking them to update

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions