Error during custom form action execution

Hi! Here is my rasa version

Rasa Version      :         2.8.12
Minimum Compatible Version: 2.8.9
Rasa SDK Version  :         2.8.1
Rasa X Version    :         None
Python Version    :         3.8.0
Operating System  :         Windows-10-10.0.19041-SP0
Python Path       :         C:\Users\User\miniconda3\envs\rasa_demo4\python.exe

i encountered a problem when i want to run my custom form action file:

Traceback (most recent call last):
  File "C:\Users\User\miniconda3\envs\rasa_demo4\lib\site-packages\sanic\app.py", line 939, in handle_request
    response = await response
  File "C:\Users\User\miniconda3\envs\rasa_demo4\lib\site-packages\rasa_sdk\endpoint.py", line 104, in webhook
    result = await executor.run(action_call)
  File "C:\Users\User\miniconda3\envs\rasa_demo4\lib\site-packages\rasa_sdk\executor.py", line 397, in run
    events = await utils.call_potential_coroutine(
  File "C:\Users\User\miniconda3\envs\rasa_demo4\lib\site-packages\rasa_sdk\utils.py", line 230, in call_potential_coroutine
    return await coroutine_or_return_value
  File "C:\Users\User\miniconda3\envs\rasa_demo4\lib\site-packages\rasa_sdk\forms.py", line 695, in run
    extraction_events = await self.extract_custom_slots(dispatcher, tracker, domain)
  File "C:\Users\User\miniconda3\envs\rasa_demo4\lib\site-packages\rasa_sdk\forms.py", line 734, in extract_custom_slots    slots_to_extract = await self.required_slots(
TypeError: required_slots() takes 1 positional argument but 4 were given

Futhermore, I have also put a @staticmethod here in my custom form action but still got the error.

@staticmethod
  def required_slots(tracker: Tracker) -> List[Text]:

please help me, thank you!

@ainul could you please share the complete custom action code with us?

i am getting same error @nik202

2022-02-24 22:52:04 INFO rasa_sdk.endpoint - Starting action endpoint server… 2022-02-24 22:52:04 INFO rasa_sdk.executor - Registered function for ‘action_submit’. 2022-02-24 22:52:04 INFO rasa_sdk.executor - Registered function for ‘action_get_email’. 2022-02-24 22:52:04 INFO rasa_sdk.executor - Registered function for ‘action_reset_all_slots’. 2022-02-24 22:52:04 INFO rasa_sdk.executor - Registered function for ‘data_form’. 2022-02-24 22:52:04 INFO rasa_sdk.executor - Registered function for ‘resource_Form’. 2022-02-24 22:52:04 INFO rasa_sdk.executor - Registered function for ‘validate_cart_roles_form’. 2022-02-24 22:52:04 INFO rasa_sdk.endpoint - Action endpoint is up and running on http://0.0.0.0:5055 Exception occurred while handling uri: ‘http://localhost:5055/webhook’ Traceback (most recent call last): File “D:\DSUsers\uie83944\Anaconda\envs\rasa_2\lib\site-packages\sanic\app.py”, line 944, in handle_request response = await response File “D:\DSUsers\uie83944\Anaconda\envs\rasa_2\lib\site-packages\rasa_sdk\endpoint.py”, line 104, in webhook result = await executor.run(action_call) File “D:\DSUsers\uie83944\Anaconda\envs\rasa_2\lib\site-packages\rasa_sdk\executor.py”, line 397, in run events = await utils.call_potential_coroutine( File “D:\DSUsers\uie83944\Anaconda\envs\rasa_2\lib\site-packages\rasa_sdk\utils.py”, line 230, in call_potential_coroutine return await coroutine_or_return_value File “D:\DSUsers\uie83944\Anaconda\envs\rasa_2\lib\site-packages\rasa_sdk\forms.py”, line 695, in run extraction_events = await self.extract_custom_slots(dispatcher, tracker, domain) File “D:\DSUsers\uie83944\Anaconda\envs\rasa_2\lib\site-packages\rasa_sdk\forms.py”, line 734, in extract_custom_slots slots_to_extract = await self.required_slots( TypeError: required_slots() takes 1 positional argument but 4 were given

action2.py file , i am having 2 different actions other than it

##############code ###########

from typing import Text, List, Any, Dict

from rasa_sdk import Tracker, FormValidationAction

from rasa_sdk.executor import CollectingDispatcher

from rasa_sdk.types import DomainDict

class Validate_CART_Roles_Form(FormValidationAction):

def name(self) -> Text:

    return "validate_cart_roles_form"

@staticmethod

def required_slots(tracker: Tracker) -> List[Text]:

    """A list of required slots that the form has to fill."""

    return ["transaction"]

def validate_transaction(

    self,

    slot_value: Any,

    dispatcher: CollectingDispatcher,

    tracker: Tracker,

    domain: DomainDict,

) -> Dict[Text, Any]:

    """Validate `transaction` value."""

    msg=tracker.latest_message['text']

    if 'cart roles' in msg.lower():

        return {"transaction": None}

    if len(slot_value) <= 2:

        dispatcher.utter_message(text=f". I'm assuming you mis-spelled.")

        return {"transaction": None}

    else:

        return {"transaction": slot_value}