# Error in ignition 7.9.21

**URL:** <https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096>\
**Category:** Ignition\
**Tags:** scripting, ignition79\
**Created:** [July 8, 2023, 6:02pm UTC](https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096 "2023-07-08T18:02:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nickolas\_Brown](https://avatars.discourse-cdn.com/v4/letter/n/57b2e6/32.png) [@Nickolas\_Brown](https://forum.inductiveautomation.com/u/Nickolas_Brown)\
**Post date:** [July 8, 2023, 6:02pm UTC](https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096/1 "2023-07-08T18:02:48Z")

</div>

Hello I have an error in ignition 7.9.21 that I cannot figure out. I am new to ignition. The script and error are below. The error is coming from a button press that is linked to the script. In the script tools there is no error though.

Error in first box is actionperformed but still pops up my GUI.

```auto
Traceback (most recent call last):

  File "<event:actionPerformed>", line 1, in <module>

TypeError: 'com.inductiveautomation.ignition.common.script.ScriptModule' object is not callable

Ignition v7.9.21 (b2022072613)
Java: Oracle Corporation 1.8.0_371

```

````auto
from javax.swing import JFrame, JTextField, JTextArea, JScrollPane, JButton, JPanel
from java.awt import BorderLayout
from java.awt.event import ActionListener, KeyAdapter, KeyEvent
from java.awt import GridLayout

def process_user_input():
    user_input = input_field.getText()
    output_area.append("User: " + user_input + "\n")
    input_field.setText("")

    response = ""
    if user_input.lower() == "hello":
        response = "Hello! How can I assist you?"
    elif user_input.lower() == "goodbye":
        response = "Goodbye! Have a great day!"
    elif user_input.lower() == "stuck in back-to-bottom?":
        display_new_question_set()
        return
    elif user_input.lower() == "pump not ramping up?":
        response = "To troubleshoot 'Pump not ramping up?', you can try the following:\n\n" \
                   "1. Check if Edge Autopilot is enabled and pumps are turned on from the Native system.\n" \
                   "2. Check if IBOP is open.\n" \
                   "3. If it still does not work, please call the hotline at (+1832-459-4507)."
    else:
        response = "I'm sorry, I didn't understand that. Can you please rephrase?"

    output_area.append("Bot: " + response + "\n")

def display_new_question_set():
    question_panel.removeAll()

    new_questions = [
        "Pump not ramping up?",
        "Rotary not ramping up?",
        "Not lowering the blocks?",
        "Auto-Zeroes not working?"
    ]

    for question in new_questions:
        question_button = JButton(question)
        question_button.addActionListener(question_button_clicked)
        question_panel.add(question_button)

    frame.revalidate()
    frame.repaint()

def question_button_clicked(event):
    question = event.getActionCommand()
    input_field.setText(question)
    process_user_input()

frame = JFrame("Chatbot")
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
frame.setSize(400, 300)
frame.setLayout(BorderLayout())

input_field = JTextField()
frame.add(input_field, BorderLayout.NORTH)

output_area = JTextArea()
output_area.setEditable(False)
scroll_pane = JScrollPane(output_area)
frame.add(scroll_pane, BorderLayout.CENTER)

question_panel = JPanel()
question_panel.setLayout(GridLayout(2, 2))

# Add the "Stuck in Back-to-bottom?" question as a subset question
stuck_question_button = JButton("Stuck in Back-to-bottom?")
stuck_question_button.addActionListener(lambda event: display_new_question_set())
question_panel.add(stuck_question_button)

# Add additional subset questions
subset_questions = [
    "Pump not ramping up?",
    "Rotary not ramping up?",
    "Not lowering the blocks?",
    "Auto-Zeroes not working?"
]

for question in subset_questions:
    question_button = JButton(question)
    question_button.addActionListener(question_button_clicked)
    question_panel.add(question_button)

frame.add(question_panel, BorderLayout.SOUTH)

frame.setVisible(True)```
````

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 8, 2023, 8:34pm UTC](https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096/2 "2023-07-08T20:34:53Z")

</div>

So, someone didn't like Ignition, so re-implemented their own popup with Java Swing, instead of making an Ignition popup window. ☹

I'm afraid your error message is insufficiently detailed (did you click the button for the full message before copying?), as line #1 is an import. Or looks to be. Try to get more error details.

---

<div class="post-metadata">

**Author:** ![Nickolas\_Brown](https://avatars.discourse-cdn.com/v4/letter/n/57b2e6/32.png) [@Nickolas\_Brown](https://forum.inductiveautomation.com/u/Nickolas_Brown)\
**Post date:** [July 8, 2023, 8:50pm UTC](https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096/3 "2023-07-08T20:50:03Z")

</div>

Do you want the full stack error, I built the entire thing. So I should build a pop up window instead inside ignition?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 9, 2023, 12:39am UTC](https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096/4 "2023-07-09T00:39:21Z")

</div>

> [@Nickolas\_Brown](#):
>
> inside ignition?

Yes, Vision windows can be configured to behave like popups, using all of Ignition's UI components. There's even a preset for new windows for it. So you can (mostly) ignore that it is Swing under the hood. Falling back on fully custom JFrame instances is a sign you've screwed up (with extraordinarily rare exceptions).

---

<div class="post-metadata">

**Author:** ![Nickolas\_Brown](https://avatars.discourse-cdn.com/v4/letter/n/57b2e6/32.png) [@Nickolas\_Brown](https://forum.inductiveautomation.com/u/Nickolas_Brown)\
**Post date:** [July 10, 2023, 6:46pm UTC](https://forum.inductiveautomation.com/t/error-in-ignition-7-9-21/76096/5 "2023-07-10T18:46:47Z")

</div>

Please excuse the late reply but I am trying to make it to where it has questions an gives an answer within the pop up menu after the button clicked is that possible with ignition?
