Tracker store with type 'custom_tracker_store.CustomTrackerStore' not found. Using `InMemoryTrackerStore` instead. When I use rasa core server as service in windows OS

I am using Rasa Framework for my chatbot and created services for the rasa core server and rasa action server in Windows OS using NSSM. I want to store the conversation using the custom tracker store in CSV. if I run rasa from the command prompt I get the conversation saved in CSV but if I do it by starting the service the conversation is saved in In Memory instead. I created CustomTrackerStoreclass in custom_tracker_store.py and mentioned it in engpoints.yml as follows: tracker_store: type: custom_tracker_store.CustomTrackerStore

And set up a service “rasa_core_service” nssm_path_of_nssm.exe install rasa_core_service f"{rasa_path} run --enable-api --endpoints endpoints.yml --cors “*” --port 5090"

What am I missing? tracker-store Rasa Open Source

It could be a path issue where Rasa isn’t finding your custom tracker when it starts. When there is an issue using any tracker store, Rasa will fallback to the in-memory tracker store. You’ll see a message in the log when this occurs. Can you provide the tracker store section of your endpoints.yml?

Yes. It will fall back to In memory tracker store. I am checking this in debug mode. endpoints.yml

tracker_store:
  type: custom_tracker_store.CustomTrackerStore

custom_tracker_store

class CustomTrackerStore(TrackerStore):

Folder structure

custom_tracker_store.py endpoints.yml image

When I run the rasa core server with “run --enable-api --endpoints endpoints.yml --cors “*” --port 5090” Rasa uses the custom tracker store. But it does not use the custom tracker store if I set up a service for the same command. Is there any environment setup required? some permission issue?

You’re command specifies endpoint.yml but the file is named endpoints.yml.

Since Rasa uses endpoints.yml I would drop the command line option.

Oh. My bad. No. I cross-checked my command I had written endpoints.yml in the command I made a typo mistake here. Otherwise, it would not have worked when I was running the same command in the command prompt. Is there something else that should also be set up while setting up the service for the rasa core server?

When I run the rasa core server with “run --enable-api --endpoint endpoint.yml --cors “*” --port 5090” Rasa uses the custom tracker store

It works when you run that command from the command line, correct?

But it does use the custom tracker store if I set up a service for the same command

I don’t understand this sentence. It says that it also works when you run it as a service but I think you mean’t to say that it does not work when you run it as a service?

What does “set up a service” mean? Are you using the kubernetes helm chart, docker-compose or a Unix init service?

Yes. Similar to setting up a service with UNIX init but I need it for Windows OS. “set up a service” means configuring NSSM to run the Rasa Core server as a Windows service. This allows the Rasa Core server to run in the background and can be started/restarted and stopped from the Windows services GUI. I have edited my above message. I will rephrase my issue here. I used the following command to configure the service for the Rasa core server.

os.system(f"{nssm_path} install {core_servicename} {rasa_core_command}")

and rasa_core_command is

f"{rasa_path} run --enable-api --endpoints endpoints.yml --cors “*” --port 5090"

hey @stephens Can you help me resolve the above issue?

This must be a Windows service environment related issue. I haven’t worked with windows services in a very long time. Other than confirming that the cli options are being passed correctly and you’re in the correct root directory for the project and user permissions I don’t have any Rasa on Windows experience.

1 Like