Server Error: INTERNAL SERVER ERROR for url: http://localhost:5055/webhook

Failed to run custom action ‘action_getdetails_form’. Action server responded with a non 200 status code of 500. Make sure your action server properly runs actions and returns a 200 once the action is executed. Error: 500 Server Error: INTERNAL SERVER ERROR for url: http://localhost:5055/webhook 2019-06-10 17:56:38 ERROR rasa_core.processor - Encountered an exception while running action ‘action_getdetails_form’. Bot will continue, but the actions events are lost. Make sure to fix the exception in your custom code.

Hi @maryamBilal,

You should give more informations besides the error that’s being thrown. What command are you running ? What was the query that made the error ? Can you show your actions.py file ?

Regards.

hi @blacknight ,

I want to get user detail(age) and set the slot value. But this custom action is not working. I run

python -m rasa_core_sdk.endpoint --actions actions

before starting the bot. This is my action.py file.

import logging import requests import json

from rasa_core_sdk import Action from rasa_sdk.events import SlotSet

logger = logging.getLogger(name)

class ActionGetdetailsForm(Action): def name(self): return “action_getdetails_form”

def required_slots(self, dispatcher,tracker):
	"""A list of required slots that the form has to fill"""
	detail = tracker.get_slot('getdetails')
	response = """ so you are { } year old """.format(detail)
	dipatcher.utter_message(response)
	return [SlotSet('getdetails',detail)]

Hi @maryamBilal,

It looks to me that everything is working fine beside

dipatcher.utter_message(response)

It might just be a synthax error : replace dipatcher by dispatcher and you should be fine.

Regards.

Thanks @blacknight . I did it, but now I am getting another error

detail = tracker.get_slot(getdetails) AttributeError: ‘dict’ object has no attribute ‘get_slot’

Hi @maryamBilal,

Depending on the version you are using, you might need to use rasa_sdk.actions instead of rasa_core_sdk in your imports.

Take a look here : Slots

Ps: This looks similar to this 2 issues : https://github.com/RasaHQ/rasa/issues/2475, https://github.com/RasaHQ/rasa/issues/2443

Hope it helps.

Hi @blacknight ,

I change rasa_core_sdk to rasa_sdk.actions but it didn’t solve my error. I have ,

    rasa-nlu = 0.15.0 
    rasa-core = 0.14.4
    rasa-sdk = 1.0.0

@maryamBilal

Did you try in Interactive learning to make sure that everything is picked up ?

Can i have a look to your domain.yml ?

Hey @blacknight @maryamBilal

am I wrong or wasn’t the legacy description of required_slots:

 @staticmethod
       def required_slots(tracker):
           # type: () -> List[Text]
           """A list of required slots that the form has to fill"""

           return ["cuisine", "num_people", "outdoor_seating",
                   "preferences", "feedback"]

So my question would be:

Why would you want to return a SlotSet? Maybe you are switching things here and it would be better to describe us which functionality you want to achieve? Maybe I am getting something wrong here.

Besides: the line response = """ so you are { } year old """.format(detail) has a typo - you shouldnt leave a whitespace between the brackets.

Regards

here is my domain.yml file . I want to run a simple action so I keep it simple.

intents:

  • greet
  • goodbye
  • thanks
  • details

entities:

  • getdetails

slots: getdetails: type: unfeaturized auto_fill: false

actions:

  • utter_thanks
  • utter_greet
  • utter_goodbye
  • action_getdetails_form

templates: utter_greet:

  • text: “Hi. how are you”

utter_goodbye:

  • text: “Talk to you later!”

utter_thanks:

  • text: “My pleasure.”

form: action_getdetails_form

Maybe you want to try my suggestion one above your domain post?

Hi @JulianGerhard,

Thank you for joining us and for noticing this.

Regards

Thank you @JulianGerhard and @blacknight. I solve the problem. As you said it was version issue. Here are the changes that I did,

from rasa_core_sdk import Action

from rasa_core_sdk import Tracker

from rasa_core_sdk.events import SlotSet

from rasa_core_sdk.executor import CollectingDispatcher