FRY-9C
FRY-9C

Reputation: 81

Azure Data Factory 'Value cannot be null. Parameter name: input'

I am trying to run a copy data activity from an API to an Azure SQL database. The pipeline activity is getting an error of

ErrorCode=InvalidParameter, 'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=The value of the property 'input' is invalid: 'Value cannot be null.
Parameter name: input'., Source=,''Type=System.ArgumentNullException,Message=Value cannot be null.
Parameter name: input,Source=Microsoft.DataTransfer.ClientLibrary,

There is no parameter named input in any of the code. Not the pipeline activity, not the datasets, and not in the linked services.

Here is the pipeline code:

{
    "name": "pipeline8",
    "properties": {
        "activities": [
            {
                "name": "Copy data1",
                "type": "Copy",
                "dependsOn": [],
                "policy": {
                    "timeout": "0.12:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "source": {
                        "type": "JsonSource",
                        "storeSettings": {
                            "type": "HttpReadSettings",
                            "requestMethod": "POST",
                            "requestTimeout": ""
                        },
                        "formatSettings": {
                            "type": "JsonReadSettings"
                        }
                    },
                    "sink": {
                        "type": "AzureSqlSink",
                        "writeBehavior": "insert",
                        "sqlWriterUseTableLock": false,
                        "disableMetricsCollection": false
                    },
                    "enableStaging": false
                },
                "inputs": [
                    {
                        "referenceName": "SkyPrepDataset",
                        "type": "DatasetReference",
                        "parameters": {
                            "relativeurl": "get_users?"
                        }
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "AzureSQLDataset",
                        "type": "DatasetReference",
                        "parameters": {
                            "schemaname": "dbo",
                            "tablename": "webuser",
                            "sqlserver": "myserver",
                            "sqldb": "mydb"
                        }
                    }
                ]
            }
        ],
        "folder": {
            "name": "SkyPrep"
        },
        "annotations": []
    }
}

Here is the source dataset:

{
    "name": "SkyPrepDataset",
    "properties": {
        "linkedServiceName": {
            "referenceName": "SkyPrepHTTPAPI",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "relativeurl": {
                "type": "string"
            }
        },
        "annotations": [],
        "type": "Json",
        "typeProperties": {
            "location": {
                "type": "HttpServerLocation",
                "relativeUrl": {
                    "value": "@dataset().relativeurl",
                    "type": "Expression"
                }
            }
        },
        "schema": {}
    }
}

Here is the sink dataset

{
    "name": "AzureSQLDataset",
    "properties": {
        "linkedServiceName": {
            "referenceName": "AzureSqlDatabase",
            "type": "LinkedServiceReference",
            "parameters": {
                "sqlserver": {
                    "value": "@dataset().sqlserver",
                    "type": "Expression"
                },
                "sqldb": {
                    "value": "@dataset().sqldb",
                    "type": "Expression"
                }
            }
        },
        "parameters": {
            "schemaname": {
                "type": "string"
            },
            "tablename": {
                "type": "string"
            },
            "sqlserver": {
                "type": "string"
            },
            "sqldb": {
                "type": "string"
            }
        },
        "annotations": [],
        "type": "AzureSqlTable",
        "schema": [],
        "typeProperties": {
            "schema": {
                "value": "@dataset().schemaname",
                "type": "Expression"
            },
            "table": {
                "value": "@dataset().tablename",
                "type": "Expression"
            }
        }
    }
}

here is the source linked service

{
    "name": "AzureSqlDatabase",
    "properties": {
        "parameters": {
            "sqlserver": {
                "type": "string"
            },
            "sqldb": {
                "type": "string"
            }
        },
        "annotations": [],
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "server": "@{linkedService().sqlserver}",
            "database": "@{linkedService().sqldb}",
            "encrypt": "mandatory",
            "trustServerCertificate": false,
            "authenticationType": "SystemAssignedManagedIdentity"
        }
    }
}

and the sink linked service

{
    "name": "SkyPrepHTTPAPI",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "annotations": [],
        "type": "HttpServer",
        "typeProperties": {
            "url": "https://api.skyprep.io/admin/api/",
            "enableServerCertificateValidation": true,
            "authenticationType": "Anonymous",
            "authHeaders": {
                "api_key": {
                    "type": "SecureString",
                    "value": "**********"
                },
                "acct_key": {
                    "type": "SecureString",
                    "value": "**********"
                }
            }
        }
    }
}

Upvotes: 1

Views: 178

Answers (1)

Pratik Lad
Pratik Lad

Reputation: 8382

ErrorCode=InvalidParameter,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The value of the property 'input' is invalid: 'Value cannot be null. Parameter name: input'.,Source=,''Type=System.ArgumentNullException,Message=Value cannot be null. Parameter name: input,Source=Microsoft.DataTransfer.ClientLibrary,

The above error can cause due to several reasons as follow:

  • Parameter created in pipeline/dataset/linkedservice and parameter used in pipeline/dataset/linkedservice are case sensitive. To avoid this problem, keep the parameter name in both locations the same
  • Check Dynamic Parameters you passed in Pipeline are correct and have proper values to it.
  • Check source and sink connection before running pipeline if it is succeeding or not then further use it in pipeline.

Upvotes: 1

Related Questions