langflow-ai/langflow · error · ValueError

provider_data.display_name is required for new agent creatio

Error message

provider_data.display_name is required for new agent creation.

What it means

Model validator on WatsonxApiDeploymentCreatePayload: when creating a NEW wxO agent (no existing_agent_id), provider_data.display_name is mandatory. Its absence raises ValueError 'provider_data.display_name is required for new agent creation.' and FastAPI returns 422.

Source

Thrown at src/backend/base/langflow/api/v1/mappers/deployments/watsonx_orchestrate/payloads.py:383

        ),
    )

    @model_validator(mode="after")
    def validate_create_operation_requirements(self) -> WatsonxApiDeploymentCreatePayload:
        if "existing_agent_id" in self.model_fields_set:
            if self.existing_agent_id is None:
                msg = "provider_data.existing_agent_id cannot be set to null."
                raise ValueError(msg)
            if len(self.model_fields_set) > 1:
                msg = (
                    "existing_agent_id is only for tracking existing wxO agents in Langflow and cannot include "
                    "fields that update the wxO agent. Update the deployment after it is tracked."
                )
                raise ValueError(msg)
            return self
        if self.display_name is None:
            msg = "provider_data.display_name is required for new agent creation."
            raise ValueError(msg)
        if self.llm is None:
            msg = "provider_data.llm is required for new agent creation."
            raise ValueError(msg)
        # TODO: Allow wxO agent creation without initial flows/tools once the adapter create path supports it.
        if not (self.add_flows or self.upsert_tools):
            msg = "provider_data must include at least one add_flows or upsert_tools item for new agent creation."
            raise ValueError(msg)
        _validate_api_unique_connection_app_ids(connections=self.connections)
        raw_app_ids = {raw.app_id for raw in self.connections}
        referenced_app_ids = _collect_api_referenced_app_ids(self.add_flows, attr_name="app_ids")
        referenced_app_ids.update(_collect_api_referenced_app_ids(self.upsert_tools, attr_name="add_app_ids"))
        _validate_api_unused_raw_app_ids(raw_app_ids=raw_app_ids, referenced_app_ids=referenced_app_ids)
        return self

    def validate_with_outer_fields(self, outer_payload: DeploymentCreateRequest) -> None:
        if self.existing_agent_id is None or "description" not in outer_payload.model_fields_set:
            return
        msg = "When existing_agent_id is provided, Langflow uses the description already set for the agent in wxO."

View on GitHub (pinned to 976ec789d2)

Solutions

  1. Include provider_data.display_name (non-empty string) in the create request.
  2. Default it from the outer request's name field if your client has only one name input.
  3. Check your UI form wiring when this appears in browser flows.

Example fix

// before
{"name": "Support bot", "provider_data": {"llm": "mistral-large", "add_flows": [...]}}
// after
{"name": "Support bot", "provider_data": {"display_name": "Support bot", "llm": "mistral-large", "add_flows": [...]}}
Defensive patterns

Strategy: validation

Validate before calling

if provider_data.get("existing_agent_id") is None:
    assert provider_data.get("display_name", "").strip(), "display_name required for new agent creation"

Type guard

const hasCreateDisplayName = (pd: Record<string, unknown>): boolean =>
  pd.existing_agent_id !== undefined || (typeof pd.display_name === "string" && pd.display_name.trim().length > 0);

Prevention

When it happens

Trigger: POST /deployments with provider_data lacking display_name (and not using existing_agent_id).

Common situations: Assuming the outer deployment name propagates into provider_data; minimal test payloads; UI bug dropping the field when the agent-display-name input is blank.

Related errors


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