Getting Error: Type Error: 'NoneType' object is not iterable

I’m running rasa-pro on my home server via docker (rasa/rasa:latest) and keep encountering an issue. Whenever I run the rasa container with my pre-trained model, I run into the error:

TypeError: ‘NoneType’ object is not iterable

Full Log:

2025-03-23 09:02:44 INFO     root  - Starting Rasa server on http://0.0.0.0:5005
2025-03-23 09:02:44 DEBUG    rasa.core.utils  - Using the default number of Sanic workers (1).
2025-03-23 09:02:44 DEBUG    rasa.core.tracker_store  - Connected to InMemoryTrackerStore.
2025-03-23 09:02:44 DEBUG    rasa.core.lock_store  - Connected to lock store 'InMemoryLockStore'.
2025-03-23 09:02:44 DEBUG    rasa.core.nlg.generator  - Instantiated NLG to 'TemplatedNaturalLanguageGenerator'.
2025-03-23 09:02:44 INFO     rasa.core.processor  - Loading model models/20250322-233504-human-apparition.tar.gz...
2025-03-23 09:02:44 DEBUG    rasa.engine.storage.local_model_storage  - Extracted model to '/tmp/tmp_9eo8ucg'.
/opt/venv/lib/python3.10/site-packages/rasa/shared/core/slot_mappings.py:224: UserWarning: Slot auto-fill has been removed in 3.0 and replaced with a new explicit mechanism to set slots. Please refer to https://rasa.com/docs/rasa/domain#slots to learn more.
  rasa.shared.utils.io.raise_warning(
2025-03-23 09:02:44 ERROR    rasa.core.agent  - Could not load model due to 'NoneType' object is not iterable.
Traceback (most recent call last):
  File "/opt/venv/lib/python3.10/site-packages/rasa/core/agent.py", line 254, in load_agent
    agent.load_model(model_path)
  File "/opt/venv/lib/python3.10/site-packages/rasa/core/agent.py", line 352, in load_model
    self.processor = MessageProcessor(
  File "/opt/venv/lib/python3.10/site-packages/rasa/core/processor.py", line 100, in __init__
    self.model_filename, self.model_metadata, self.graph_runner = self._load_model(
  File "/opt/venv/lib/python3.10/site-packages/rasa/core/processor.py", line 137, in _load_model
    metadata, runner = loader.load_predict_graph_runner(
  File "/opt/venv/lib/python3.10/site-packages/rasa/engine/loader.py", line 26, in load_predict_graph_runner
    model_storage, model_metadata = model_storage_class.from_model_archive(
  File "/opt/venv/lib/python3.10/site-packages/rasa/engine/storage/local_model_storage.py", line 95, in from_model_archive
    metadata = cls._load_metadata(temporary_directory_path)
  File "/opt/venv/lib/python3.10/site-packages/rasa/engine/storage/local_model_storage.py", line 154, in _load_metadata
    return ModelMetadata.from_dict(serialized_metadata)
  File "/opt/venv/lib/python3.10/site-packages/rasa/engine/storage/storage.py", line 193, in from_dict
    domain=Domain.from_dict(serialized["domain"]),
  File "/opt/venv/lib/python3.10/site-packages/rasa/shared/core/domain.py", line 246, in from_dict
    rasa.shared.core.slot_mappings.validate_slot_mappings(domain_slots)
  File "/opt/venv/lib/python3.10/site-packages/rasa/shared/core/slot_mappings.py", line 234, in validate_slot_mappings
    for slot_mapping in mappings:
TypeError: 'NoneType' object is not iterable
2025-03-23 09:02:44 INFO     root  - Rasa server is up and running.
2025-03-23 09:02:44 INFO     root  - Enabling coroutine debugging. Loop id 103478183216016.

docker-compose.yml:

rasa:
    image: rasa/rasa:latest
    container_name: rasa
    ports:
      - "5005:5005"          # Port for Rasa API access
    volumes:
      - ./rasa_project:/app  # Mount your Rasa model files to /app/rasa_project
    environment:
      - GOOGLE_APPLICATION_CREDENTIALS=/app/credentials.json  # If using Google APIs
      - SQLALCHEMY_SILENCE_UBER_WARNING=1
    command: run --enable-api --cors '*' --debug  # Command to run Rasa API
    networks:
      - default             # Connect to the default network

config.yml

# Set model language
language: "en"

# Pipeline for NLU Processing
pipeline:
- name: "SpacyNLP"               # General NLP model
  model: "en_core_web_md"
- name: "SpacyTokenizer"         # Tokenization
- name: "SpacyFeaturizer"         # Featurizer 
- name: "DIETClassifier"         # Main intent classifier
  epochs: 100
  constrain_similarities: true
  learning_rate: 0.002
- name: "EntitySynonymMapper"    # Maps synonyms for entities
- name: "ResponseSelector"       # Chooses best response from retrieval intents
  epochs: 100
- name: "FallbackClassifier"     # Handles unknown inputs
  threshold: 0.3
- name: "NLUCommandAdapter"     # Converts voice commands to text (optional)
# Policies for Decision-Making
policies:
- name: "MemoizationPolicy"    # Learns from training stories
- name: "TEDPolicy"            # Handles dialogue logic with deep learning
  epochs: 100
- name: "RulePolicy"           # Handles simple rule-based interactions
- name: "IntentlessPolicy"     # Handles unknown inputs

me@host:$ rasa --version

Rasa Pro Version  :         3.12.0
Minimum Compatible Version: 3.11.0rc1
Rasa SDK Version  :         3.12.0
Python Version    :         3.11.11
Operating System  :         Linux-6.11.0-19-generic-x86_64-with-glibc2.39
Python Path       :         /home/jones/.pyenv/versions/3.11.11/bin/python3.11
License Expires   :         2028-03-20T23:24:52+00:00

me@server:$ rasa --version

Rasa Version      :         3.6.0
Minimum Compatible Version: 3.5.0
Rasa SDK Version  :         3.6.0
Python Version    :         3.10.6
Operating System  :         Linux-6.11.0-19-generic-x86_64-with-glibc2.35
Python Path       :         /opt/venv/bin/python

Hi @ItsActuallyTJ Thank you for raising this issue, it looks like you are running Rasa Open Source. Would you like to continue with Rasa Open Source or would you like to try Rasa Pro? You can get a Rasa Pro Docker image here and free developer license key here. Let me know.

It looks like your local instance is running Rasa Pro but your docker-compose is using a Rasa OSS image. Change the image in your docker compose from rasa/rasa to rasa/rasa-pro and don’t forget to set the RASA_PRO_LICENSE env var.