I've created a pipeline which extracts from 1300+ tables from various sources. It ran successfully for 800+ runs, however, after awhile the dynamic content for a stored procedure activity stopped evaluating correctly and passed the string literal of the dynamic content instead.
snippet of the activity input when failing
{
"storedProcedureName": "[dbo].[usp_update_extract_record_success]",
"storedProcedureParameters": {
"copy_duration": {
"value": "@activity('Copy Odbc').output.copyDuration",
"type": "Int64"
},
"data_read": {
"value": "@coalesce(activity('Copy Odbc').output.dataRead,null)",
"type": "Int64"
}
snippet of the activity input when succeeded
{
"storedProcedureName": "[dbo].[usp_update_extract_record_success]",
"storedProcedureParameters": {
"copy_duration": {
"value": 111,
"type": "Int64"
},
"data_read": {
"value": 76844376,
"type": "Int64"
}
You can see I've added the dynamic content correctly, and not as a string value
I've changed the integration runtime from autoresolve to a self hosted integration runtime. I noticed when the failure occurs the integration runtime is recorded as 'Unknown'. So was hoping this may fix the problem.
I also increased the retry attempts for the activity incase it was a transient issue, but it appears to reoccur.
I also tried the same and got the same error when I have used the wrong dynamic expression.
To resolve this, make sure you are using correct Dynamic expression without spelling mistakes and case sensitivity with proper hierarchy.
If it's taking input as string, make sure you convert it into an Int. with expression like @int(activity('Copy Odbc').output.copyDuration
So, it will Fetch the input correctly and process it.