Staring Rasa Server (via docker-compose up) - ERROR rasa.core.agent - Could not load model due to list index out of range

We have trained a model in a windows pc (using docker). This trained model is migrated to a CentOS VM. When executing docker-compose up, below error is encountered:

rasa_1           | 2019-09-17 18:30:09 DEBUG    rasa.core.tracker_store  - Connection to SQL database 'rasa.db' successful
rasa_1           | 2019-09-17 18:30:09 DEBUG    rasa.core.tracker_store  - Connected to SQLTrackerStore.
rasa_1           | 2019-09-17 18:30:10 DEBUG    rasa.model  - Extracted model to '/tmp/tmp19hus4f5'.
rasa_1           | 2019-09-17 18:30:11 ERROR    rasa.core.agent  - Could not load model due to list index out of range.
rasa_1           | [2019-09-17 18:30:11 +0000] [1] [ERROR] Experienced exception while trying to serve
rasa_1           | Traceback (most recent call last):
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/sanic/app.py", line 1096, in run
rasa_1           |     serve(**server_settings)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/sanic/server.py", line 742, in serve
rasa_1           |     trigger_events(before_start, loop)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/sanic/server.py", line 604, in trigger_events
rasa_1           |     loop.run_until_complete(result)
rasa_1           |   File "uvloop/loop.pyx", line 1451, in uvloop.loop.Loop.run_until_complete
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/run.py", line 225, in load_agent_on_start
rasa_1           |     action_endpoint=endpoints.action,
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/agent.py", line 265, in load_agent
rasa_1           |     remote_storage=remote_storage,
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/agent.py", line 927, in load_local_model
rasa_1           |     remote_storage=remote_storage,
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/agent.py", line 374, in load
rasa_1           |     interpreter = NaturalLanguageInterpreter.create(nlu_model)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/interpreter.py", line 57, in create
rasa_1           |     return RasaNLUInterpreter(model_directory=obj)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/interpreter.py", line 263, in __init__
rasa_1           |     self._load_interpreter()
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/interpreter.py", line 286, in _load_interpreter
rasa_1           |     self.interpreter = Interpreter.load(self.model_directory)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/model.py", line 301, in load
rasa_1           |     return Interpreter.create(model_metadata, component_builder, skip_validation)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/model.py", line 328, in create
rasa_1           |     component_meta, model_metadata.model_dir, model_metadata, **context
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/components.py", line 437, in load_component
rasa_1           |     component_meta, model_dir, model_metadata, cached_component, **context
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/registry.py", line 185, in load_component_by_meta
rasa_1           |     component_meta, model_dir, metadata, cached_component, **kwargs
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/classifiers/embedding_intent_classifier.py", line 702, in load
rasa_1           |     b_in = tf.get_collection("intent_placeholder")[0]
rasa_1           | IndexError: list index out of range
rasa_1           | Traceback (most recent call last):
rasa_1           |   File "/usr/local/bin/rasa", line 10, in <module>
rasa_1           |     sys.exit(main())
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/__main__.py", line 76, in main
rasa_1           |     cmdline_arguments.func(cmdline_arguments)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/cli/run.py", line 88, in run
rasa_1           |     rasa.run(**vars(args))
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/run.py", line 55, in run
rasa_1           |     **kwargs
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/run.py", line 186, in serve_application
rasa_1           |     app.run(host="0.0.0.0", port=port)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/sanic/app.py", line 1096, in run
rasa_1           |     serve(**server_settings)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/sanic/server.py", line 742, in serve
rasa_1           |     trigger_events(before_start, loop)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/sanic/server.py", line 604, in trigger_events
rasa_1           |     loop.run_until_complete(result)
rasa_1           |   File "uvloop/loop.pyx", line 1451, in uvloop.loop.Loop.run_until_complete
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/run.py", line 225, in load_agent_on_start
rasa_1           |     action_endpoint=endpoints.action,
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/agent.py", line 265, in load_agent
rasa_1           |     remote_storage=remote_storage,
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/agent.py", line 927, in load_local_model
rasa_1           |     remote_storage=remote_storage,
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/agent.py", line 374, in load
rasa_1           |     interpreter = NaturalLanguageInterpreter.create(nlu_model)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/interpreter.py", line 57, in create
rasa_1           |     return RasaNLUInterpreter(model_directory=obj)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/interpreter.py", line 263, in __init__
rasa_1           |     self._load_interpreter()
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/core/interpreter.py", line 286, in _load_interpreter
rasa_1           |     self.interpreter = Interpreter.load(self.model_directory)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/model.py", line 301, in load
rasa_1           |     return Interpreter.create(model_metadata, component_builder, skip_validation)
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/model.py", line 328, in create
rasa_1           |     component_meta, model_metadata.model_dir, model_metadata, **context
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/components.py", line 437, in load_component
rasa_1           |     component_meta, model_dir, model_metadata, cached_component, **context
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/registry.py", line 185, in load_component_by_meta
rasa_1           |     component_meta, model_dir, metadata, cached_component, **kwargs
rasa_1           |   File "/usr/local/lib/python3.6/site-packages/rasa/nlu/classifiers/embedding_intent_classifier.py", line 702, in load
rasa_1           |     b_in = tf.get_collection("intent_placeholder")[0]
rasa_1           | IndexError: list index out of range
chatbot_rasa_1 exited with code 1

Below is the relevant extract from docker-compose.yml:

version: '3.0'
services:
  rasa:
    image: rasa/rasa:1.2.2
    ports:
      - 5005:5005
    volumes:
      - ./:/app
    command:
      - run
      - --enable-api
      - --debug

Please advise the cause of this issue or any pointers to investigate this further.

Was this model also trained on 1.2.2? Looks like it might have been trained on a newer version

Yes. You were correct. When I used the later version of Rasa to run, it worked. Can we ensure the message is appropriate so that diagnosis is easier?

Yes, I’ll create a bug report and look into what we can do :slight_smile: Would you be willing to share the packaged model so that it’s easier to recreate by trying to load that model in 1.2.2?