Invalid YAML file message on RasaX (0.29.3)

Hi,

We’re trying to ramp up RasaX 0.29.3 on a new/fresh EC2 machine, with a docker.
According to Rasa Compatibility Matrix, we set Rasa SDK to version 1.10.2.

RasaX ramp up went pretty smooth, except for the titled message, which stops us from training the model, and complete the ramp-up (we managed to upload the NLU and Story files + set the desired configuration, but we cannot upload the Domain file, so we cannot trigger training).

Following is the Docker snapshot:

ubuntu@ip-172-31-10-203:~$ sudo docker images
REPOSITORY             TAG             IMAGE ID       CREATED        SIZE
sgino209/rasabot_app   newt_actions2   644b582a6b6e   10 hours ago   326MB
rasa/rasa-x            0.29.3          34257162e0ac   5 months ago   2.84GB
rasa/rasa-sdk          1.10.2          97eb780f0ce2   5 months ago   196MB
rasa/nginx             0.29.3          1c90ae9b60ce   6 months ago   89.9MB
bitnami/rabbitmq       3.8.3           510d7a1f57d7   6 months ago   233MB
rasa/rasa-x-demo       0.29.0          603c2b9a16f0   6 months ago   220MB
bitnami/postgresql     11.7.0          94de1af08e91   7 months ago   243MB
rasa/rasa              1.10.0-full     540ad250374c   7 months ago   2.8GB
bitnami/redis          5.0.8           ed712cc8a084   7 months ago   104MB
rasa/duckling          0.1.6.3         71e8315c4b7f   8 months ago   147MB

Following is the Docker images snapshot:

ubuntu@ip-172-31-10-203:~$ sudo docker ps -a
CONTAINER ID   IMAGE                                COMMAND                  CREATED        STATUS        PORTS                                         NAMES
4517398829d8   sgino209/rasabot_app:newt_actions2   "./entrypoint.sh sta…"   10 hours ago   Up 10 hours   5055/tcp                                      rasa_app_1
73164931a67e   rasa/rasa-x:0.29.3                   "sh -c 'user_id=$(id…"   10 hours ago   Up 10 hours   5002/tcp                                      rasa_rasa-x_1
ad33f6f97fe7   rasa/nginx:0.29.3                    "/opt/bitnami/entryp…"   10 hours ago   Up 10 hours   0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp   rasa_nginx_1
cca760e54b70   rasa/rasa:1.10.0-full                "rasa x --no-prompt …"   10 hours ago   Up 10 hours   5005/tcp                                      rasa_rasa-production_1
c9448c928111   rasa/rasa:1.10.0-full                "rasa x --no-prompt …"   10 hours ago   Up 10 hours   5005/tcp                                      rasa_rasa-worker_1
dfd539fa1d39   bitnami/rabbitmq:3.8.3               "/opt/bitnami/script…"   10 hours ago   Up 10 hours   4369/tcp, 5672/tcp, 15672/tcp, 25672/tcp      rasa_rabbit_1
8f75f3852915   bitnami/postgresql:11.7.0            "/opt/bitnami/script…"   10 hours ago   Up 10 hours   5432/tcp                                      rasa_db_1
50cb7415475a   bitnami/redis:5.0.8                  "/opt/bitnami/script…"   10 hours ago   Up 10 hours   6379/tcp                                      rasa_redis_1
42c4d480f63d   rasa/duckling:0.1.6.3                "duckling-example-ex…"   10 hours ago   Up 10 hours   8000/tcp                                      rasa_duckling_1

Following is the Docker-compose logs app:

Attaching to rasa_app_1
app_1              | 2020-12-21 20:53:25 INFO     rasa_sdk.endpoint  - Starting action endpoint server...
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_simple_question'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_get_rda'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_howmanyxiny'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_is_food_healthy'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_what_is_healthier'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_is_food_recommended'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_eat_before_training'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_bloodtest_generic'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_bloodtest_value'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_nutrition_food_substitute'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_personlization_list'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'action_personlization_remove'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.executor  - Registered function for 'profile_form'.
app_1              | 2020-12-21 20:53:26 INFO     rasa_sdk.endpoint  - Action endpoint is up and running on http://localhost:5055

Finally, following is the Docker-compose logs tail, which might give some hint for the root cause:

ubuntu@ip-172-31-10-203:/etc/rasa$ sudo docker-compose logs
...
rasa-x_1           |   docs=DOCS_URL_DOMAINS,
rasa-x_1           | ERROR:pykwalify.core:validation.invalid
rasa-x_1           | ERROR:pykwalify.core: --- All found errors ---
rasa-x_1           | ERROR:pykwalify.core:["Value '{'profile_form': {}}' is not a list. Value path: '/forms'"]

Please note that we validated the YAML format of our file, and it is a valid YAML format (e.g. http://www.yamllint.com).

Our domain.yml file is available at this link.

It seems that RasaX allows saving it only if we exclude the slots and the forms sections.
Note that the very same domain.yml file goes through without any issue on a different RasaX/EC2 machine, which we’ve ramped up with 0.34.0 version.

Can you please support us on that issue?

Thanks ahead,
Newt Team

we managed to upload the NLU and Story files + set the desired configuration, but we cannot upload the Domain file

How did you upload these files, with the REST endpoints? We recommend you connect Rasa X to a your git repo as described here.

Please note that we validated the YAML format of our file, and it is a valid YAML format

You should use the rasa data validate command which will validate all of your training data including the domain.yml. The best approach is to do this on a local machine in your IDE also connected to your bot git repo.

so we cannot trigger training

You should also consider doing the training locally where you can run also run the rasa test commands. There’s a good discussion of testing here.

We’re trying to ramp up RasaX 0.29.3 on a new/fresh EC2 machine, with a docker. According to Rasa Compatibility Matrix, we set Rasa SDK to version 1.10.2.

I recommend you update your versions because there have been many enhancements and bug fixes since these releases.

Greg

Thanks Greg.
We’ve switched for the latest RasaX, and it works well now

1 Like