# System.alarm.acknowledge not accepting three arguments

**URL:** <https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668>\
**Category:** Ignition\
**Created:** [July 4, 2014, 6:18pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668 "2014-07-04T18:18:51Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![chache](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@chache](https://forum.inductiveautomation.com/u/chache)\
**Post date:** [July 4, 2014, 6:18pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668/1 "2014-07-04T18:18:51Z")

</div>

Hi All,

The docs say I can do this:

```auto
system.alarm.acknowledge(alarmIds, notes, user)
```

(from [https://www.inductiveautomation.com/support/usermanuals/ignition/system\_alarm\_acknowledge.htm](https://www.inductiveautomation.com/support/usermanuals/ignition/system_alarm_acknowledge.htm))

But when I do something like:

`uuids = ["ca75c4eb-3f63-4cdc-a3d0-8862bdc405ab"]
system.alarm.acknowledge(uuids, "note", "user")`

I get:  
acknowledge(): expected 2 args; got 3

What am I doing wrong?

Regards,  
Charles

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [July 7, 2014, 2:24pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668/2 "2014-07-07T14:24:43Z")

</div>

Where are you running the three argument script? system.alarm.acknowledge() with three arguments is scoped for the Gateway; with two arguments is scoped for the Client.

---

<div class="post-metadata">

**Author:** ![chache](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@chache](https://forum.inductiveautomation.com/u/chache)\
**Post date:** [July 7, 2014, 3:17pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668/3 "2014-07-07T15:17:09Z")

</div>

Hi there,

This was run from the script sandbox in the designer.

I’m not sure what you mean by scoped for the Gateway - doesn’t all the code live in the client? Or are the app.\* project scripts the Gateway-scoped parts?

Regards,  
Charles

---

<div class="post-metadata">

**Author:** ![nmudge](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nmudge/32/3394_2.png) [@nmudge](https://forum.inductiveautomation.com/u/nmudge)\
**Post date:** [July 7, 2014, 3:27pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668/4 "2014-07-07T15:27:35Z")

</div>

All code does not live in the client.

Some Python code can be run on the gateway and not in a client or designer.

“Event Scripts (Gateway)” contain Python scripts that are run on the Gateway. This is found under the Configuration folder in the Project Browser in the Designer.

app.\* Python modules can be called from Python scripts running on the Gateway or clients/designers. So app.\* Python modules are both Client and Gateway scoped.

---

<div class="post-metadata">

**Author:** ![chache](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@chache](https://forum.inductiveautomation.com/u/chache)\
**Post date:** [July 7, 2014, 4:57pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668/5 "2014-07-07T16:57:28Z")

</div>

Excellent, it all makes sense.

Thanks for the help,  
Charles

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [July 7, 2014, 5:04pm UTC](https://forum.inductiveautomation.com/t/system-alarm-acknowledge-not-accepting-three-arguments/8668/6 "2014-07-07T17:04:38Z")

</div>

Nick gave a good general explanation. Here’s some specifics about this particular function and why it’s different in the Client and Gateway…

When you run system.alarm.acknowledge from anywhere except the Gateway (ie Project \> Event Scripts (Gateway) ), it’s using the Client scope. Because there’s a user logged in to the client (or designer, if that’s where you’re trying it out), the system doesn’t need a user argument – it uses the currently logged in user.

Gateway scripts, because they run on the Gateway (even though you write them in a screen on the Designer), need to know what user to associate with the acknowledgement. After all, there could be zero, one, or many users logged in to clients at the time. So the Gateway version needs a user parameter.

Hope that helps.
