After running a specific API call validation is missing.
API call in question:
{
"jsonrpc": "2.0",
"method": "action.update",
"params": {
"operations": [
{
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0",
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opconditions": [],
"esc_step_to": "1",
"esc_step_from": "1"
}
],
"def_shortdata": "trigger",
"ack_shortdata": "acknowledge",
"acknowledge_operations": [
{
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0"
}
],
"def_longdata": "name:{EVENT.NAME}",
"recovery_operations": [
{
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0"
}
],
"actionid": "15",
"ack_longdata": "name:{EVENT.NAME}",
"r_shortdata": "resolve",
"r_longdata": "name:{EVENT.NAME}"
},
"auth": "8b6e7b6ede4c99175650c8ef59060aa6",
"id": 1
}
Instead of an error about incorrect parameters, Zabbix returns error:
Cannot perform update statement on table \"actions\" without values
{
"jsonrpc": "2.0",
"error": {
"code": -32500,
"message": "Application error.",
"data": "Cannot perform update statement on table \"actions\" without values.",
"debug": [
{
"file": "/usr/share/zabbix/include/classes/db/DB.php",
"line": 576,
"function": "exception",
"class": "DB",
"type": "::",
"args": [
1,
"Cannot perform update statement on table \"actions\" without values."
]
},
{
"file": "/usr/share/zabbix/include/classes/api/services/CAction.php",
"line": 927,
"function": "update",
"class": "DB",
"type": "::",
"args": [
"actions",
[
{
"values": {
"def_shortdata": "trigger",
"ack_shortdata": "acknowledge",
"def_longdata": "name:{EVENT.NAME}",
"ack_longdata": "name:{EVENT.NAME}",
"r_shortdata": "resolve",
"r_longdata": "name:{EVENT.NAME}"
},
"where": {
"actionid": 15
}
}
]
]
},
{
"file": "/usr/share/zabbix/include/classes/api/clients/CLocalApiClient.php",
"line": 123,
"function": "update",
"class": "CAction",
"type": "->",
"args": [
{
"15": {
"operations": [
{
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0",
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opconditions": [],
"esc_step_to": "1",
"esc_step_from": "1"
}
],
"def_shortdata": "trigger",
"ack_shortdata": "acknowledge",
"acknowledge_operations": [
{
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0"
}
],
"def_longdata": "name:{EVENT.NAME}",
"recovery_operations": [
{
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0"
}
],
"actionid": "15",
"ack_longdata": "name:{EVENT.NAME}",
"r_shortdata": "resolve",
"r_longdata": "name:{EVENT.NAME}"
}
}
]
},
{
"file": "/usr/share/zabbix/include/classes/core/CJsonRpc.php",
"line": 85,
"function": "callMethod",
"class": "CLocalApiClient",
"type": "->",
"args": [
"action",
"update",
{
"operations": [
{
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0",
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opconditions": [],
"esc_step_to": "1",
"esc_step_from": "1"
}
],
"def_shortdata": "trigger",
"ack_shortdata": "acknowledge",
"acknowledge_operations": [
{
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0"
}
],
"def_longdata": "name:{EVENT.NAME}",
"recovery_operations": [
{
"opmessage": {
"mediatypeid": "0",
"default_msg": "1"
},
"opmessage_usr": [
{
"userid": "1"
}
],
"operationtype": "0"
}
],
"actionid": "15",
"ack_longdata": "name:{EVENT.NAME}",
"r_shortdata": "resolve",
"r_longdata": "name:{EVENT.NAME}"
},
"8b6e7b6ede4c99175650c8ef59060aa6"
]
},
{
"file": "/usr/share/zabbix/api_jsonrpc.php",
"line": 63,
"function": "execute",
"class": "CJsonRpc",
"type": "->",
"args": []
}
]
},
"id": 1
}
Expected: Zabbix should catch incorrect parameters before this error.