After upgrade, rasa train is unable to read domain and lists UserWarning for every single intent

Hello,

I was having an issue this morning where rasa shell started to ignore all buttons in custom action responses, although everything had been working fine just 12 hours ago. I decided to try updating to see if that would help. However, after upgrading rasa I am unable to use any files at all. This message shows at the beginning:

UserWarning: Loading domain from 'domain.yml' failed. Using empty domain. Error: 'You need to specify a value for the key 'entity' in the slot mapping of type 'from_entity' for slot 'birthplace' in the form 'background_form'. Please see https://rasa.com/docs/rasa/forms for more information.'

After that, each intent, entity, and slot is listed as an issue:

Issue found in 'data\rules.yml':
Found intent 'introduce_name' in stories which is not part of the domain.

When I try to use rasa shell with the previously working models, I get this error:

UserWarning: The model at 'models' could not be loaded. Error: <class 'rasa.nlu.model.UnsupportedModelError'>: The model version is too old to be loaded by this Rasa NLU instance. Either retrain the model, or run with an older version. Model version: 2.0.2 Instance version: 2.1.3

I have not changed my domain since yesterday, so I’m not sure where the problem is occurring.

Edit: I downgraded back to 2.0.2 and the domain file works as before.

However, out of curiosity, has there been a major change between versions 2.0.2 and 2.1.3 that makes the domain files completely incompatible? Or is there another issue?

Hi @shanelle, it looks like there were some definitions missing from your domain file that 2.1.3 threw as errors. Does your domain match the formatting structure described in the example here: Domain ?

Hi sorry for the late reply, I decided it would be easier to just stick with the older version while I was trying some things out.

Yes, I just checked every line of my domain file and it matches the formatting structure described in the docs. Additionally, I checked it on yamlchecker.com as well as yamllint.com and there were no errors detected.

However, I am still having the same issue I described before now that I just upgraded to Rasa 2.2.1. Everything was working fine in 2.0.2 when I trained the model 20 minutes ago, but now that I’ve upgraded again it claims that every single intent is unregistered when I try to run “rasa train.” It also is unable to complete training and instead returns about 100 errors like this regarding ~5 diferent slots in the domain:

2020-12-17 21:37:52 ERROR    rasa.shared.core.trackers  - Tried to set non existent slot 'requested_slot'. Make sure you added all your slots to your domain file.

It only stopped when I pressed Ctrl+C.

Do you have any idea what might be wrong or what I can try next?

@shanelle Do you have requested_slot defined in your stories? If so, you’ll need to include it as a slot in your domain.yml file as well

Yes, every single intent and slot for which I’m getting a warning is already defined in the domain.yml file.

The first message is this:

UserWarning: Loading domain from 'domain.yml' failed. Using empty domain.

After that, it lists every intent that I have individually and states that they are not defined. I don’t understand what the problem is, as it continues to work perfectly with Rasa 2.0.2. But as soon as I upgrade, without changing anything in any of the files, it no longer works. After your first message, I manually checked hundreds of lines to see if my formatting was off as well as using yamlchecker and yamllint, but there are no issues to be found.

I really don’t understand what the issue could be with the higher versions, I’ve even completely uninstalled Rasa and Rasa X from my computer and then reinstalled. Even that has had no discernible effect, the same issue persists.

Which command are you running that’s showing that warning message?

The command that shows the warning and error messages is simply “rasa train.” And if I run “rasa shell” it says

UserWarning: The model at 'models' could not be loaded. Error: <class 'rasa.nlu.model.UnsupportedModelError'>: The model version is too old to be loaded by this Rasa NLU instance. Either retrain the model, or run with an older version. Model version: 2.0.2 Instance version: 2.2.2

And so far I haven’t been able to use any Rasa version beyond 2.0.2 because I’m not able to train my models for any later version.

Thanks for your help, fortunately I’ve now resolved the issue by commenting out every line of code in the domain and then commenting them back in small sections and retraining the model (so essentially just starting from scratch and building the models up from the beginning to isolate the problem, although I have actually not found any problematic lines so far).

Perhaps the problem was caused by a single whitespace formatting issue on a line that I didn’t see when I was going through the file.