{"record":{"id":"6fae94e686d37d6e","repo":"langflow-ai/langflow","slug":"deployment-provider-create-result-contains-a-tool","errorCode":null,"errorMessage":"Deployment provider create result contains a tool binding with an empty tool_id.","messagePattern":"Deployment provider create result contains a tool binding with an empty tool_id\\.","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"src/backend/base/langflow/api/v1/mappers/deployments/watsonx_orchestrate/mapper.py","lineNumber":986,"sourceCode":"        \"\"\"Shape create result provider_data with created-tools semantics.\n\n        ``created_tools`` is populated directly from ``tools_with_refs``. Each\n        entry must carry a flow-version UUID ``source_ref`` and a non-empty\n        provider ``tool_id``.\n        \"\"\"\n        adapter_provider_result = self.parse_adapter_slot(\n            slot=WXO_ADAPTER_PAYLOAD_SCHEMAS.deployment_create_result,\n            slot_name=\"deployment_create_result\",\n            raw=result.provider_result,\n            operation=\"creating the deployment\",\n        )\n        created_tools: list[WatsonxApiCreatedTool] = []\n        for binding in adapter_provider_result.tools_with_refs:\n            tool_id = str(binding.tool_id or \"\").strip()\n            source_ref = str(binding.source_ref or \"\").strip()\n            if not tool_id:\n                msg = \"Deployment provider create result contains a tool binding with an empty tool_id.\"\n                raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=msg)\n            if not source_ref:\n                msg = (\n                    \"Deployment provider create result contains a tool binding with an empty source_ref \"\n                    f\"for tool_id={tool_id!r}.\"\n                )\n                raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=msg)\n            try:\n                created_tool = WatsonxApiCreatedTool(\n                    flow_version_id=source_ref,\n                    tool_id=tool_id,\n                )\n            except ValidationError as exc:\n                msg = (\n                    \"Deployment provider create result contains a created tool binding with a non-UUID \"\n                    f\"source_ref={source_ref!r} for tool_id={tool_id!r}. A flow version id was expected.\"\n                )\n                raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=msg) from exc\n            created_tools.append(created_tool)","sourceCodeStart":968,"sourceCodeEnd":1004,"githubUrl":"https://github.com/langflow-ai/langflow/blob/976ec789d2886a86de109c044d089d68e96c9a35/src/backend/base/langflow/api/v1/mappers/deployments/watsonx_orchestrate/mapper.py#L968-L1004","documentation":"Error \"Deployment provider create result contains a tool binding with an empty tool_id.\" thrown in langflow-ai/langflow.","triggerScenarios":"Occurs when the provider create result includes a tool binding whose tool_id is empty.","commonSituations":"See trigger scenarios.","solutions":["Retry the create; the provider returned a tool binding without a tool_id. Report to the provider integration maintainer if reproducible."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"976ec789d2886a86de109c044d089d68e96c9a35","analyzedAt":"2026-08-14T18:23:12.227Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}