Skip to content

LangGraph runtime does not enforce nested schema validation on Flow/StartNode input #231

Open

Description

@JainSajal23

The LangGraph Agent Spec runtime accepts a structured Flow/StartNode input that does not conform to the declared Property schema.

The flow declares a nested object property where profile.active is required:

payload
├── name (required)
└── profile (required)
    ├── score  (required)
    ├── active (required)
    └── tags   (required)

The serialized Agent Spec correctly contains:

{
  "required": ["score", "active", "tags"],
  "additionalProperties": false
}

The component is then started with an invalid payload where the required nested field profile.active is missing:

{
    "payload": {
        "name": "Ada",
        "profile": {
            "score": 0.98,
            "tags": ["verified", "structured"]
        }
    }
}

Expected Behavior

The runtime should reject the input because it does not conform to the declared payload schema. The required field profile.active is missing.

Actual Behavior

Wayflow

Wayflow rejects the invalid input with a TypeError because the supplied value does not match the expected ObjectProperty.

TypeError: The input passed ... of type `dict` is not of the expected type `ObjectProperty(...)`

LangGraph

LangGraph accepts the same invalid input and completes the flow successfully:

{
    "payload": {
        "name": "Ada",
        "profile": {
            "score": 0.98,
            "tags": ["verified", "structured"]
        }
    }
}

No validation error is raised.

Runtime Comparison

Runtime Invalid nested input
Wayflow Rejected
LangGraph Accepted
Expected Rejected

Impact

The same Agent Spec has different input-validation behavior across runtimes.

The LangGraph runtime can therefore accept Flow/StartNode input values that violate the declared Agent Spec property schema, including missing required nested properties.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions