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