langflow-ai/langflow · error · ValueError

Flow {flow_id_str} has no data

Error message

Flow {flow_id_str} has no data

What it means

Error "Flow {flow_id_str} has no data" thrown in langflow-ai/langflow.

Source

Thrown at src/backend/base/langflow/api/v1/endpoints.py:249

async def simple_run_flow(
    flow: Flow,
    input_request: SimplifiedAPIRequest,
    *,
    stream: bool = False,
    api_key_user: User | None = None,
    event_manager: EventManager | None = None,
    context: dict | None = None,
    run_id: str | None = None,
):
    validate_input_and_tweaks(input_request)
    try:
        task_result: list[RunOutputs] = []
        user_id = api_key_user.id if api_key_user else None
        flow_id_str = str(flow.id)
        if flow.data is None:
            msg = f"Flow {flow_id_str} has no data"
            raise ValueError(msg)
        graph_data = flow.data.copy()
        graph_data = process_tweaks(graph_data, input_request.tweaks or {}, stream=stream)
        raise_if_hitl_unsupported(graph_data)
        # Mirror the Playground's one-time fix in-memory: bind empty fields whose
        # display_name matches a user global variable's default_fields. Without
        # this, API-only workflows never trigger the frontend hook that persists
        # load_from_db=true, so variables with "Apply to Fields" silently fail.
        # See: https://github.com/langflow-ai/langflow/issues/11781
        if user_id is not None:
            graph_data = await apply_global_variable_defaults(graph_data, user_id)
        graph = Graph.from_payload(
            graph_data, flow_id=flow_id_str, user_id=str(user_id), flow_name=flow.name, context=context
        )
        # Forward the caller-supplied identifier to tracing providers without
        # affecting authn/authz. The API-key owner remains the effective user
        # for permissions, global variables, and job ownership.
        if input_request.user_id:
            graph.tracing_user_id = input_request.user_id

View on GitHub (pinned to 976ec789d2)

Solutions

  1. Open the flow in the editor and save it so its graph data is persisted before running it via the API.
  2. Verify you are using the correct flow id; the flow may have been created empty or corrupted.

When it happens

Trigger: Occurs when the requested flow exists in the database but its data column is null or empty, so there is no graph to execute.

Common situations: See trigger scenarios.


AI-assisted analysis of langflow-ai/langflow@976ec789d2 (2026-08-14). Data as JSON: /api/errors/1dd7188b02f1bdfb. Report an issue: GitHub.