Rasa_sdk.interfaces - Tried to access non existent slot 'requested_slot'

rasa-x 0.24.7 rasa 1.6.1 rasa-sdk 1.6.1 Python 3.6.5 Operating system: Ubuntu

Everything was fine until yesterday I trained a new model. I tried to test the new model with a form. The form was activated correctly but there was a strange problem answering a slot question! I answered correctly but again asked the same question! It had fallen into an infinite loop! Through the dashboard, I disabled the new model and activated the previous one. I answered the slot question and got out of the loop and everything was back to normal! I also saw these during the issue in the app log:

app_1              | 2020-03-25 10:28:10 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'
app_1              | 2020-03-25 10:28:10 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'
app_1              | 2020-03-25 10:28:23 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'
app_1              | 2020-03-25 10:28:23 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'
app_1              | 2020-03-25 10:29:02 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'
app_1              | 2020-03-25 10:29:02 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'
app_1              | 2020-03-25 10:29:18 INFO     rasa_sdk.interfaces  - Tried to access non existent slot 'requested_slot'

Changes applied to the new model:

  • Change the response of one of the templates
  • Add some nlu training samples

I have been training the new model several times today but this problem has happened every time. The previous model is completely healthy. What do you think is the message in the log and where is the problem? Do you have any idea where the problem is? Did changing the template response cause this problem?

Welcome to the community @z.fallahn. This seems like the model doesn’t have the FormPolicy configured. Can you please share your config.yml?

Thanks. This is my config.yml file:

language: fa
pipeline:
- name: WhitespaceTokenizer
- name: CRFEntityExtractor
- name: EntitySynonymMapper
- name: CountVectorsFeaturizer
- name: EmbeddingIntentClassifier
- name: datetime_parser.DatetimeParser
- name: clean_entities.EntityCleaner
- name: ner_regex.RegexNERExtractor
policies:
- name: MappingPolicy
- name: KerasPolicy
- name: FormPolicy
- name: FallbackPolicy
  nlu_threshold: 0.7
  core_threshold: 0.7
  fallback_action_name: action_not_clear_query

And the form is specified under forms in the domain file?

Yes. My domain file looks like this:

intents:
...
entities:
...
slots:
...
templates:
...
actions:
...
forms:
...

By the way, I tried to restart containers by docker restart command but it didn’t solve my problem. After that, I tried docker build && docker up -d command and the problem was solved! It’s very strange to me. Template response changed successfully. The problem is solved and everything is back to normal. What do you think?

So docker build did rebuild your action server image?

Yes. I forced it to rebuild rasa-x, rasa-worker, rasa-production and app.

Ah, seems Docker used an old cached version then and didn’t add the new model.