This topic describes the causes of the startup errors that are related to the data transformation engine. This topic also provides methods that you can use to troubleshoot these errors.

Error log
{
"errorMessage": "ETL config doesn't pass security check, detail: XXXXXX"
}
- If an error occurs during the transformation engine startup phase, Log Service retries the data transformation task until a retry is successful or until you manually stop retries.
- After you modify the data transformation rule and a retry is successful, the data transformation engine works as expected. No data is dropped or duplicated.
Troubleshoot common errors
- The basic syntax is invalid.
The compiled data transformation rules do not conform to the Log Service DSL syntax. For example, the rules contain unpaired parentheses (), or commas (,) are incorrectly written as colons (:).
- Error logs
{ "errorMessage": "ETL config doesn't pass security check, detail: invalid syntax" } { "errorMessage": "ETL config doesn't pass security check, detail: unexpected EOF while parsing" } ...
- Troubleshooting method
Locate the specific syntax error based on the
traceback
information in the related error log. For example,e_set("test", v("status"))
is incorrectly written ase_set("test": v("status"))
, as shown in the following figure.
- Error logs
- Invalid operators are used.
All operations in Log Service DSL must be specified by using the functions supported by Log Service DSL. For example, numerical operations or size comparisons must be specified by using the op_* function. You cannot use only operators.
- Error log
{ "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected: <class `_ast.BinOp`> " }
- Troubleshooting method
Check Log Service DSL rules. Make sure that all operations such as numerical operations and size comparisons are specified by using the functions supported by Log Service DSL.
- Examples
e_set("b", v("a") - 10) # Invalid example e_set("b", op_sub(v("a"), 10)) # Valid example e_set("b", v("a") >= v("c")) # Invalid example e_set("b", op_ge(v("a"), v("c"))) # Valid example
- Error log
- If the type of the parameter that is passed to a function is invalid or the called
function does not exist, an error occurs.
If the type of the parameter that is passed to a function is different from the type of the parameter that is received by the function or the called function does not exist, an error occurs.
- Error log
{ "errorMessage": "ETL config doesn't pass security check, detail: invalid call in detected: function_name" }
- Troubleshooting method
- Check whether the called function exists and the function name is correct. If the function exists and the name is valid, check whether the type of the parameter that is passed to the function is valid.
- Locate the error function based on the
traceback
information in the related error log. For example, if the returned error log indicates that the dt_totimestamp function is invalid, you must check whether the function exists, and then check whether the type of the parameter that is passed to the dt_totimestamp function is valid.
- Examples
The type of the parameter received by the dt_totimestamp function is a datetime object, and
v("time1")
in the code is a string. An error occurs because the type of the parameter that is passed to the function is invalid.To fix the error, use the dt_parse function to convert the string to a datetime object before the parameter is passed to the dt_totimestamp function. You can also use the dt_parsetimestamp function that can receive strings instead of the dt_totimestamp function.
# Invalid examples e_set("time1", "2019-06-03 2:41:26") e_set("time2", dt_totimestamp(v("time1"))) # Valid examples e_set("time1", "2019-06-03 2:41:26") e_set("time2", dt_totimestamp(dt_parse(v("time1")))) # Valid examples e_set("time1", "2019-06-03 2:41:26") e_set("time2", dt_parsetimestamp(v("time1")))
- Error log
- Expression functions are globally called.
The Log Service DSL syntax supports two types of functions: global operation functions and expression functions. Only global operation functions can be globally called in the data transformation process. If an expression function is globally called, an error occurs.
- Error log
{ "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected: <class '_ast.Expr'>" }
- Troubleshooting method
Check whether an expression function is globally called in the data transformation process.
- Examples
# Invalid examples op_add(v("a"), v("b")) str_lower(v("name")) # Valid examples e_set("add", op_add(v("a"), v("b"))) e_set("lower", str_lower(v("name")))
- Error log
- Parameters are specified by using variable values.
The Log Service DSL syntax does not support value assignment by using variables. Variable values can only be passed in stateless mode.
- Error log
{ "errorMessage": "ETL config doesn't pass security check, detail: invalid assign detected: variable_name" }
- Troubleshooting method
- Check whether variables are used to assign values in the Log Service DSL rule.
- Locate the error based on the
traceback
information in the related error log.
- Examples
# Invalid examples sum_value = op_add(v("a"), v("b")) e_set("sum", sum_value) # Valid example e_set("sum", op_add(v("a"), v("b")))
- Error log