Warning: This document is for an old version of Rasa X.

Rasa X Changelog

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

[0.26.4] - 2020-05-13


  • #2704: Fix a JWT security issue and move the generation of conversation_id for guest conversations to the backend side. This security fix is important, so we recommend all clients to upgrade as soon as possible.

[0.26.3] - 2020-03-24


  • #2362: Fixed migration error happening with some slot values on PostgreSQL.

[0.26.2] - 2020-03-23


  • #1951: Responses with quick replies can now be edited from the response screen.

  • #2327: Fixed migration error happening with very large slot values on PostgreSQL. The error message displayed in these cases was similar to:

    sqlalchemy.exc.OperationalError: (psycopg2.errors.ProgramLimitExceeded) index row size 3176 exceeds maximum 2712 for index "conversation_slot_value_index"
  • #5313: Integrated Version Control no longer changes the order of the entity synonyms when dumping them. They are now dumped in the same order as they were inserted.

Miscellaneous internal changes

  • #2266: The API now returns a status code 201 when creating entity synonyms via POST /projects/{project_id}/synonyms.

  • #2339: Lowered the telemetry HTTP request timeout for blocking contexts.

[0.26.1] - 2020-03-13

Improved Documentation

  • #2287: Remove invalid instructions for running helm init from the Kubernetes / OpenShift documentation. helm init is not longer required since Helm version 3.

[0.26.0] - 2020-03-06

Deprecations and Removals

  • #1832: Deprecated GET /conversations/{conversation_id} to avoid ambiguity in the naming, since it actually returns Rasa OSS tracker of a conversation

    Introduced GET /conversations/{conversation_id}/tracker as an alternative to the endpoint mentioned above


  • #1634: Added UI for creating and managing conversation tags

  • #1636: Added more endpoints for conversation tags:

    • Added GET /conversations/<id>/tags endpoint

    • Added DELETE /conversations/<id>/tags/<id> endpoint

  • #1831: Introduced DELETE /conversations/<id> endpoint

    Now users can completely remove conversations with specified IDs using the REST API.

  • #2000: Add endpoint GET /projects/{project_id}/git_repositories/public_ssh_key to retrieve a public SSH key generated by Rasa X.

    When connecting a Git repository to Rasa X, it’s now possible to specify a field use_generated_ssh_keys instead of providing an SSH key. Integrated Version Control will then use a generated SSH key to authenticate with the Git server. To make this work you have to store the public SSH key from the /projects/{project_id}/git_repositories/public_ssh_key endpoint at your Git server.

  • #2034: Added a new One-Line Deploy Script to deploy Rasa X on a single Linux machine using an embedded Kubernetes cluster or with an existing Kubernetes cluster.

  • #2051: Added new GET /conversations/inputChannels endpoint.

    Added new input_channels parameter to the GET /conversations endpoint.

  • #2086: Added a new slots parameter to GET /conversations. This parameter allows users to filter conversations by slot values.

    Added new GET /conversations/slotNames and GET /conversations/slotValues endpoints.

  • #2119: Users can now set up Integrated version control from the UI by adding a generated ssh key as a deploy key in their repository.

  • #2155: Add the ability to filter by whether or not a Conversation’s story appeared in the training data at the time it was predicted Restore the ability to filter Conversations by maximum NLU confidence

  • #2163: Create tab in conversations filter panel for filtering by slots.

  • #2188: Add UI support for filtering Conversations by input channel (including the logged in user’s own Tester and Interactive Learning conversations)


  • #1716: Return HTTP status code 201 at endpoint POST /projects/<project_id>/models/jobs if no new model was trained because a model with the same training data and configuration already exists.

  • #1764: Handle cases when EventService fails to add events to the database — keep these events in memory and try saving them again after a successful attempt to save another incoming event to the database.

    The limit of pending events is set to 1000 to avoid excessive memory usage.

  • #2009: Added a composite unique constraint on the conversation_id, timestamp and type_name columns of the conversation_event table. This is to ensure that events that are exported repeatedly using rasa export are not duplicated in the database.


    Duplicate events in the converation_event table are deleted as part of the migration. Duplicate events are determined based on having more than one entry with the same conversation_id, timestamp and type_name values.

  • #2072: The validation of the Rasa X domain is skipped when uploading stories. This prevents Rasa X from refusing to save stories when the domain is problematic.

  • #2145: Improve rendering performance on the “Annotate new data” tab

  • #2146: The required Rasa Open Source version was updated to 1.8.0 or greater. This release is no longer compatible with Rasa Open Source 1.7 or older.

  • #2166: Sort intents in the filter and intent dropdowns on the training data tab

  • #2172: Re-introduce conditional rendering of text editor on NLU Training screens for performance benefits.

  • #2217: Remove checkboxes from multi-select as they do not function as expected.


  • #1969: Add a check if files exist when doing synchronisation.

  • #2047: Fixed ValueError that occurred when importing data with synonyms where a mapping value was equal to the entity’s synonym value.

  • #2058: Fix a bug in Integrated Version Control where uploaded lookup tables were referenced with their absolute path by the NLU training files. This led to problems when training a Rasa Open Source model in the project directory since the lookup table files could not be found.

  • #2085: Prevent UI allowing user to enter an already existing sentence into the training data using the enter key.

  • #2087: Prevent ShareYourBot from overwriting an existing Rasa X login session Prevent the main Rasa X UI from allowing login with a ShareYourBot session

  • #2090: Fix padding and text styling in conversation sidebar.

  • #2092: Fix the entity annotation of e2e stories when a line contains two or more entities.

  • #2216: Fix an error when running the Docker-Compose Quick Install from within the Rasa X directory. Earlier the task backwards compatible credentials failed when doing this.

Improved Documentation

  • #1798: Extend and improve the documentation for the usage of the Rasa X Helm chart.

  • #2070: New docs section in ‘Connecting a Rasa deployment’ explaining how to use rasa export to migrate conversations from Rasa to Rasa X. See 1. Import Existing Conversations from Rasa Open Source. This section now includes the existing section ‘Connect a Live Rasa Deployment’.


    rasa export requires rasa>=1.8.0.

Miscellaneous internal changes

  • #2024: Move the Rasa X CI from Travis to GitHub actions.

  • #2027: Removed script to migrate Rasa X databases from MongoDB to SQL.

  • #2032: Remove setuptools_scm to manage versions manually.

  • #2063: Add telemetry event Conversation Tagged that is sent when a conversation is tagged.

  • #2125: Add telemetry event Conversations Imported for conversations that are imported originating from a rasa export call.

  • #2170: Apply flake8 linting to the project.

[0.25.2] - 2020-02-14


  • #1907: Added support for multi-line text blocks on Annotate new data and Training Data screen

  • #1987: Added the ability to filter Conversations by Tags in the UI


  • #1969: Add a check if files exist when doing syncronisation.

  • #2012: Fixed an error happening while loading conversations containing conversation events with an empty metadata field. This problem led to conversations not being loaded.

Improved Documentation

  • #2005: Added documentation on custom database setups, including Oracle.

[0.25.1] - 2020-02-07


  • #1976: Added environment variable SANIC_REQUEST_MAX_SIZE_IN_BYTES to set max allowable request size for requests sent to Rasa X server. Default set to 800 MB, up from sanic’s default of 100MB.


  • #1983: Fixed issue with two DB migration that were skipped in 0.25.0 upgrade.

    This includes two empty migration for those who upgrade from 0.24.x, and two new migrations on top for those upgrading Rasa X from 0.25.0

Miscellaneous internal changes

  • #1978: Set default docker-compose values for RASA_X_USERNAME and RASA_X_PASSWORD to empty strings to eliminate the warning of these variables not being set.

[0.25.0] - 2020-02-05

Deprecations and Removals

  • #1815: Login button for enterprise ID removed from Community Edition.

  • #1826: GET /conversations no longer returns unflagged_messages or flagged_messages. GET /conversations/<id> no longer returns flagged_messages.


  • #1636: Added support for conversation tags endpoints:

    • GET /conversations now returns list of assigned tags

    • Added tags_any parameter to GET /conversations

    • Added POST /conversations/<id>/tags endpoint

    • Added DELETE /conversations/<id>/tags/<id> endpoint

    • Added GET /conversations/tags endpoint

    Now users can assign/delete arbitrary tags to conversations via REST API.

  • #1750: Allow users to specify RASA_X_USERNAME and RASA_X_PASSWORD to create admin user after Rasa X is started for the first time.

  • #1826: GET /conversations/<id> now includes a has_flagged_messages field, replacing the flagged_messages list.

  • #1870: Updated Conversations filter UI to new, extensible design

  • #1898: End-to-end stories can now be generated from the conversations screen.

  • #1953: Added ability to view Conversation Tags to ConversationInfo and Client components


  • #1859: Whenever NLU training data is changed, Rasa X will now only dump the updated files instead of dumping the whole training data.


  • #1765: Make it possible to use any branch names including the ones containing slashes (“/”).

  • #1808: Make sure users are unable to create duplicated responses.

  • #1906: Fixed bugs in the quick installation script pertaining to python3-distutils and distutils.util on Ubuntu 16.04 and Debian 9.

  • #1965: Fixed bug where Integrated Version Control pushed to the target branch and to a different branch at the same time.

    Fixed bug where Integrated Version Control could not push changes due the lack of a configured Git identity. Commits by Rasa X will now use the author name Rasa X and the email rasa-x@rasa.com.

Improved Documentation

  • #1731: Added a note to the Integrated Version Control documentation to point out that existing training data will be overwritten when a Git Repository is connected to Rasa X.

  • #1851: Updated cluster deployment docs to use the open-sourced Helm chart.

  • #1915: Made Rasa X landing page more concise and refactored docker-compose quick install docs

Miscellaneous internal changes

  • #1491: A different warning about an outdated Rasa X version.

  • #1816: Changed references of “metrics” to “telemetry” throughout the project.

  • #1833: Made runtime telemetry configuration local to telemetry.py.

    Made runtime telemetry configuration safe to read and write from different processes.

  • #1851: Removed Helm chart from repository and switch CI to use open-sourced Helm chart from https://github.com/RasaHQ/rasa-x-helm.

  • #1869: Rasa X now always uses the default multiprocessing context to start new processes.

  • #1889: Made main process and event service share the same telemetry configuration.

  • #1930: Pin the Ansible version to <2.9 in the Rasa X installation script to avoid an error when installing Docker as part of this script.

[0.24.7] - 2020-01-31


  • #1879: Fix the link to the docs for the Integrated Version Control when using Rasa X.

  • #1888: Fixed bug which prevented discarding the Rasa model configuration when using Integrated Version Control.

  • #1895: In docker-compose, port 6379 of the redis service is no longer published on the host network.

  • #1923: Added support to read responses from the responses section in domain files. To keep compatibility with Rasa 1.6, Rasa X will continue to return responses within the templates section until the next minor release.

Miscellaneous internal changes

  • #1897: Stop tracking Git changes pushed events which were caused as part of probing if we have the right permissions for the given repository.

  • #1924: Use SQLEventBroker instead of deprecated SQLProducer when running the Rasa X PyPI package.

  • #1931: Pin the Ansible version to <2.9 in the Rasa X installation script to avoid an error when installing Docker as part of this script.

[0.24.6] - 2020-01-27


  • #1888: Fixed bug which prevented discarding the Rasa model configuration when using Integrated Version Control.

Miscellaneous internal changes

  • #1888: Fix wrong calculation of lookup table entries in the telemetry status events.

[0.24.5] - 2020-01-27

Miscellaneous internal changes

  • #1880: Add server uptime to the Status telemetry event.

  • #1883: Improved messages logged while waiting for migrations to finish; they should now more accurately describe the process.

[0.24.4] - 2020-01-23


  • #1872: Sequences on tables entity_synonym and entity_synonym_value are missing. An explicit declaration of sequences is required for Oracle DB.

    The event_service when forked as a subprocess now waits for migrations to finish before accessing the database.

[0.24.3] - 2020-01-22


  • #1857: The index name nlu_train_data_ent_orig_val_idx on table nlu_training_data_entity exceeds the length of 30 characters allowed by Oracle DB 11.2. The index was renamed to nlu_train_dat_ent_orig_val_idx.

    The column name carry_over_slots_to_new_session in table domain also exceeds 30 characters. The column was renamed to carry_over_slots.

Improved Documentation

[0.24.2] - 2020-01-21


  • #1793: Rasa X no longer serves models to Rasa servers which once were compatible but now are incompatible.

Improved Documentation

  • #1796: Added missing documentation for the tracker debug dumps that can be requested from the GET /conversations/<id> endpoint. A JSON dump of the tracker is returned as a file attachment if the Accept: application/json header is specified. A debug story dump of the tracker is returned as a file attachment if the Accept: text/markdown header is specified.

    Removed outdated documentation for the GET /conversations/<id>/events endpoint.

  • #1817: Added documentation on connecting an existing Rasa deployment to Rasa X for viewing conversations

Miscellaneous internal changes

  • #1824: Use towncrier for changelog management.

[0.24.1] - 2020-01-09


  • Updated default value of RASA_X_DEMO_VERSION in .env to 0.24.0.

[0.24.0] - 2020-01-07


  • Synonyms can now be managed from the UI under the Training.

  • API endpoint to check if telemetry is enabled or not: GET /telemetry.

  • API endpoint to disable telemetry in server mode: DELETE /telemetry. The Rasa X server must be restarted in order for the changes to take effect.

  • Training a model is now possible with the api_token query parameter as authentication.

  • Added an ingress to the Rasa X Helm chart.

  • Added a readiness probe to the Rasa X deployment in the Rasa X Helm chart.

  • Added a query parameter mapped_value to GET /api/projects/default/synonyms which allows querying for synonyms which have this value mapped to them.

  • Query parameter exclude_leading_action_session_start to API endpoint GET /conversations/<conversation_id>. If True, a leading event ActionExecuted ("action_session_start") will be excluded from the list of events in the tracker. The parameter defaults to False.


  • Errors appearing in the log when telemetry was enabled but no internet connection was available.

  • additionalChannelCredentials in the Rasa X Helm chart are now correctly indented.

  • Stories, deleted from the UI, will also be deleted from the filesystem.

  • Polling error bar on conversations screen no longer pushes conversation past window break.


  • In server mode, telemetry is now enabled by default. Existing configurations of telemetry via the METRICS_CONSENT and UUID environment variables will be respected if they are present. New installations of Rasa X using the server deployment options will not configure this environment variable anymore. Telemetry configuration options will now be stored in the SQL database. New API endpoints have been added to make management of this configuration easier. No changes have been made to local mode (i.e. the rasa x command) telemetry.

  • The Annotate Entities popup can also handle synonyms now.

  • The Rasa X Helm chart now uses subcharts for postgresql, redis, and rabbitmq. It is recommended to create a backup of the database and the models before upgrading. Please revisit the configuration values for the chart since some of them changed.

  • Using Duckling in the Rasa X Helm chart is now optional.

  • You can now use an external volume claim for the Rasa X deployment in the Rasa X Helm chart.

  • The lockstore database used by the rasa deployments in the Rasa X Helm chart can now be configured with .Values.rasa.lockStoreDatabase

  • User messages are no longer rendered as Markdown

  • Rasa X only searches for new local models during startup. Models trained in Rasa X or uploaded via the API will show up right away as before.

Deprecations and Removals

  • Removed logger container from docker-compose deployment. Logs can still be viewed using the docker-compose logs command.

  • In case credentials are not specified in the Rasa X Helm chart they are not longer auto-generated to avoid problems when upgrading the chart. Please override the default values or use external secrets to provide the credentials.

[0.23.6] - 2020-01-07


  • Pin sanic patch version instead of minor version. Fixes sanic _run_request_middleware() error.


  • Query parameter exclude_leading_action_session_start to API endpoint GET /conversations/<conversation_id>. If True, a leading event ActionExecuted ("action_session_start") will be excluded from the list of events in the tracker. The parameter defaults to False.

[0.23.5] - 2019-12-18


  • Fixed problem when using another target branch than master with the Integrated Version Control Feature which led to Rasa X checking out master and to problems when discarding changes.

  • Support for conversation sessions in interactive learning.

[0.23.4] - 2019-12-12


  • The endpoints.yml event broker config is only loaded when run in a Docker environment.

  • Added python3-distutils to the install.sh script to resolve dependency issues.

  • Pin multidict dependency to 4.6.1 to prevent sanic from breaking, see https://github.com/huge-success/sanic/issues/1729 .


  • The GET /conversations/<id> and GET /conversations/<id>/messages now include Rasa events metadata in their responses. The event metadata always includes the Rasa X database ID for the event.

[0.23.3] - 2019-12-06


  • All responses to CORS preflight requests now set the Access-Control-Max-Age header to 30 minutes (this can be configured by using the SANIC_ACCESS_CONTROL_MAX_AGE environment variable).

  • JWT token expiration time can now be configured by using the JWT_EXPIRATION_TIME environment variable.


  • Fixed compatibility issues with Rasa X 0.23 and OpenShift.

  • Fixed database pod crash due to wrong permissions after a helm upgrade.

  • Fixed new pods stuck after helm upgrade due to volume attach issues.

  • Fixed ImportError when using Integrad Version Control in environments where git is not available.

  • NLU training data for the same intent will now be dumped to the same file.


  • POST /projects/<project_id>/synonyms/<synonym_id no longer throws an error when trying to map values which have been previously mapped or are repeated.

  • POST /projects/<project_id>/synonyms/<synonym_id no longer throws an error in case values are mapped which equal the synonym they are mapped to.

  • Upgraded postgres container to 11.3.0

[0.23.2] - 2019-11-29


  • Added the ability to create SAML users on the command line using the rasa_x_commands.py script. The command is sudo python rasa_x_commands.py create-saml admin NAMEID, where NAMEID should be the expected name ID SAML property of the user.


  • Fixed the created branch’s name not being updated after a first commit in Integrated version control

  • Use correct Bearer authorization header in the documentation for adding a Git repository to Rasa X.


  • Log events on the Conversations screen to better understand the user experience. NOTE: These events are dropped by the server unless telemetry is enabled.

Deprecations and Removals

  • Removed attributes column in rasa_x_user SQL table (this is not needed for SAML authentication).

[0.23.1] - 2019-11-28


  • Fixed failing helm upgrade when appVersion was changed. If the upgrade fails with an error message such as:

    Error: UPGRADE FAILED: cannot patch "rasa-app" with kind Deployment: Deployment.apps "rasa-app" is invalid:     spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"rasa", "app.kubernetes.io/managed-by":"Helm", "app.kubernetes.io/name":"rasa-x", "app.kubernetes.io/version":"0.23.0", "app.name":"app-deployment.yaml", "helm.sh/chart":"rasa-x-0.23.0"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable && cannot patch

    The following workaround can be used to upgrade:

    kubectl delete deployment --namespace <rasa namespace> -l app.kubernetes.io/instance=<rasa release name>

    After the upgrade the issue should not happen anymore.

  • Fixed an issue where the Conversations screen would attempt to fetch a single conversation rather than retrieving the list of further conversations

[0.23.0] - 2019-11-26


  • Add command line argument rasa x --config CONFIG, to specify path to the policy and NLU pipeline configuration of your bot. (default: config.yml)

  • Added PUT /users/<username> endpoint which allows users to update their data attribute.

  • Helm chart variable nginx.annotations to configure annotations on the nginx service.

  • Kafka event consumer. The event broker configuration is loaded from the event_broker section in endpoints.yml. See the Rasa Kafka event broker docs for an overview of configuration parameters.

  • Added Integrated Version Control while on server mode as an experimental feature.

  • Support for loading and annotating examples with retrieval intents (see the Rasa docs on retrieval actions). Training models using NLU data that contains retrieval intents is not supported, and has do be done using the CLI (rasa train).

  • Add experimental support for Integrated Version Control. Please see the documentation for instructions on how to activate and use this feature.

  • Custom response data is now displayed in Conversation screens


  • Fixed coroutine 'mark_latest_as_production' was never awaited warning.

  • Partial permission grants against a subset of attributes are now no longer retained when a more permissive grant against that resource / action is created

  • Responses no longer displays the last selected response template when all items are either deleted or removed by search


  • The POST /synonyms/<entity_synonym_id> endpoint now returns the created mapped values on success.

  • Message buttons now continue to show after they are relevant, but are disabled.

  • A placeholder is now displayed on “Talk to your bot” page when no model is trained

  • A model will only be marked as production automatically in case there is currently no other model marked as production.

  • Order of returned permissions is now fixed (alphabetized), so related behaviour should be more predictable.

  • Added warnings and improved error handling on the Training Data screen to identify out-of-bounds entity annotation

[0.22.2] - 2019-11-08


  • Environment variable RUN_EVENT_CONSUMER_AS_SEPARATE_SERVICE to determine whether the event consumer is run as a separate Docker service. If true, Rasa X will not launch the event service, and expects that it is run in a separate container (recommended for setups that experience high message load). If false or unset, Rasa X will launch the event service automatically as a subprocess.

  • In server mode the event consumer will expose an HTTP endpoint GET /health that indicates readiness (status code 200). The port can be further defined using the SELF_PORT environment variable (5673 by default).


  • Changed Sanic response timeout to 1h in order to prevent errors when training models with a lot of training data.

  • Rasa X no longer gets stuck in migrations which are required to work with Oracle.

  • Fixed error with Oracle databases when creating table entity_synonym_value.


  • The POST /synonyms/<entity_synonym_id> endpoint now returns the created mapped values on success.

  • Fixed outdated deployment documentation.

[0.22.1] - 2019-10-29


  • Messages are no longer duplicated when copying to Interactive Learning

  • Entity Annotation now truncates leading / trailing spaces

  • Fixed bug that stopped story visualization tab from rendering

[0.22.0] - 2019-10-22


  • Added Python 3.7 support.

  • Show “Conversation started on…” at top of Conversations to make the order of messages clearer.

  • Intent / Entity / Action filters are now searchable

  • Highlight words on hover in NLU Training data to indicate that they can be annotated

  • Users can now follow a 4 steps hints tutorial on the conversations screen

  • Support for loading and annotating examples with retrieval intents (see the Rasa docs on retrieval actions). Training models using NLU data that contains retrieval intents is not supported, and has do be done using the CLI (rasa train).


  • The Ansible playbook now specifies the LockStore settings in the endpoints.yml.

  • Corrected indentation for additionalChannelCredentials in the Helm chart.

  • Users stay in interactive learning after making a correction if they were beforehand.


  • Filtering Conversations by Date now has a dedicated dropdown outside of the filters panel

  • API endpoint to upload a Rasa model config now accepts the config as plain YAML (PUT /settings). The endpoint returns the saved config as plain YAML.

  • API endpoint to fetch the Rasa model config (GET /settings) returns the config as plain YAML.

  • Conversation filter bar is now always visible, whether or not filters are applied

  • Move to tippy.js@5

  • The Helm chart now has an option to configure an external secret instead of using a generated one. See the docs for more details.

  • The initial delays for liveness and readiness probes in the Helm chart are now configurable.

Deprecations and Removals

  • Removed support for Python 3.5.

  • Removed Conversation filter options for Policy and Maximum Confidence

[0.21.5] - 2019-10-21


  • Use WAL mode for SQLite database to avoid database is locked errors.


  • Buttons for suggested responses to bot messages work again.

  • The input for manually adding training data no longer blanks out whenever you write a string that is already in your data set.

  • Interactive learning timestamps are incremented correctly and all corrected events are shown.

[0.21.4] - 2019-10-10


  • Port of 0.20.4 (RabbitMQ SSL auth).

  • Port of 0.20.5 (SSL CA file using RASA_X_SSL_CA_FILE environment variable).


  • The Ansible playbook now specifies the LockStore settings in the endpoints.yml.

Deprecations and Removals

  • Removed warnings regarding unset variables (UUID, METRICS_CONSENT) when running Rasa Enterprise.

[0.21.3] - 2019-10-03


  • Decode JWT public key to avoid TypeError in GET /version endpoint.

  • Custom rasax.nginx files without environment variables are no longer emptied in nginx’s entrypoint.sh.

[0.21.2] - 2019-10-01


  • Helm chart for a simplified cluster deployment. See the Kubernetes / OpenShift docs for more information.


  • Catch tarfile.TarError-type errors when reading metadata from zipped models.

[0.21.1] - 2019-09-26


  • Retraining models with unchanged training data does not create duplicated models.

[0.21.0] - 2019-09-24


  • support for channel field in response templates

  • added query parameter q to GET /responseGroups to search by response text

  • added query parameter template to GET /responseGroups to search by template name. If both q and template are specified, both conditions are combined with an AND.

  • Added ability to pass a query argument to the SQL connection URL using the DB_QUERY environment variable. The value of this variable needs to be a json dump of the query dictionary.

  • redis services acting as a persistence layer for conversation locks in rasa

  • endpoint for fetching runtime configs at GET /api/config (accepts ?token=RASA_X_TOKEN as authentication)

  • environment variables SQL_POOL_SIZE (default: 50) and SQL_MAX_OVERFLOW (default: 100) can be set to control the pool size and maximum pool overflow for SQLTrackerStore when used with the postgresql dialect

  • feedback for success/failure when uploading examples

  • New ui for responses and the ability to live preview the changes made to them

  • Now able to correct intents from Talk to Your Bot

  • added endpoint PUT /responseGroups/<template name> to bulk rename templates

  • added endpoint GET /projects/<project_id>/data.md to download the NLU training data as markdown file

  • added new endpoints for entity synonyms management (GET /synonyms, POST /synonyms, GET /synonyms/<entity_synonym_id>, POST /synonyms/<entity_synonym_id>, PUT /synonyms/<entity_synonym_id>, DELETE /synonyms/<entity_synonym_id>, PUT /synonyms/<entity_synonym_id>/<entity_synonym_value_id>, DELETE /synonyms/<entity_synonym_id>/<entity_synonym_value_id>)


  • Clicking outside of the Add log modal on the Annotate new data tab now closes the modal

  • The last remaining Story is now immediately removed from view if deleted

  • Debug logs are correctly printed if the log level is set to DEBUG

  • Shortened table names to comply with Oracle’s table name length limit

  • Prevent tagging of models that have an incompatible version


  • uploading templates will now fail schema validation if extra properties are provided

  • rasa-production and rasa-worker are started with the config-endpoint argument, making these services pull the runtime config from the /api/config endpoint

  • Changed Rasa X API JWT encryption mechanism to RS256. Key pairs are generated automatically on startup. Alternatively, private and public key files can be mounted in the rasa-x container. They will be read from paths specified by two environment variables:

    • JWT_PUBLIC_KEY_PATH (default: /app/public_key)

    • JWT_PRIVATE_KEY_PATH (default: /app/private_key)

    These variables may also be set when Rasa X is started locally from the command line. The previous environment variable JWT_SECRET in combination with symmetric encryption is no longer supported. The rasa services still support the --jwt-secret command-line argument for encryption of the underlying Rasa server.

  • the GET /version endpoint returns JWT public key information

  • use rasa 1.3.1

  • Changed property “story_created_from” of “Story Created” metrics event to take a pre-established set of values, instead of a URL path.

  • Added property “message_annotated_from” to “Message Annotated” metrics event. This new property describes from where the message was annotated.

  • Use guess_format when loading data instead of deprecated _guess_format

  • Use correct domain when reading local story files to avoid domain warnings

Deprecations and Removals

  • support for symmetric JWT encryption of the Rasa X API using HS256 with the JWT_SECRET environment variable

[0.20.5] - 2019-10-09


  • Added support to provide a CA file to set the SSL context. The CA file path can be set with the environment variable RASA_X_SSL_CA_FILE.


  • Fixed bug in SSL auth in Rasa Enterprise server.

[0.20.4] - 2019-19-08

  • Added support for RabbitMQ TLS authentication. The following environment variables need to be set: RABBITMQ_SSL_CLIENT_CERTIFICATE - path to the SSL client certificate (required) RABBITMQ_SSL_CLIENT_KEY - path to the SSL client key (required) RABBITMQ_SSL_CA_FILE - path to the SSL CA file (optional, for certificate verification) RABBITMQ_SSL_KEY_PASSWORD - SSL private key password (optional)

  • Added ability to define the RabbitMQ port using the RABBITMQ_PORT environment variable.

[0.20.3] - 2019-09-18


  • domains containing non ascii characters get properly dumped as using utf8

  • response texts can now be longer than 255 chars

  • Cancel button on Share Bot popup now behaves as expected on Models tab

  • Long story titles now truncate when hovered, displaying the compare button


  • Changed property “story_created_from” of “Story Created” metrics event to take a pre-established set of values, instead of a URL path.

  • Added property “message_annotated_from” to “Message Annotated” metrics event. This new property describes from where the message was annotated.

[0.20.2] - 2019-08-28


  • new endpoint GET /responseGroups to retrieve responses grouped by their template name

  • field edited_since_last_training to response templates to check whether this template was included in a model training

  • endpoints for regex features (/projects/<project_id>/regexes)

  • added support to run Rasa Enterprise server using HTTPS. Certificate and keyfile locations need to be supplied using environment variables RASA_X_SSL_CERTIFICATE and RASA_X_SSL_KEYFILE.

  • endpoints for lookup tables (GET, POST /projects/<project_id>/lookupTables, GET, DELETE /projects/<project_id>/lookupTables/<lookup_table_id>)

  • List, create, update and delete regexes from the UI

  • List, upload and download lookup tables from the UI


  • fixed train_cron.py script, and added some tests for it

  • PUT /api/stories correctly deletes old stories before adding new ones

  • form events correctly render in talk to your bot stories


  • use Segment instead of Mixpanel for metrics (metrics.py), and add new events

  • Downloaded training data does no longer include the content of the lookup tables, but only the link to the lookup table file. The lookup table can be downloaded separately.

[0.20.1] - 2019-08-12


  • conversation object includes new field sender_name

  • querying GET /conversations/<conversation_id> with a query parameter since only returns conversation events after since

  • nginx upstream hosts can be set using RASA_X_HOST (default: rasa-x:5002), CUSTOM_ACTION_HOST (default: app:5055), RASA_PRODUCTION_HOST (default: rasa-production:5005)

  • option for metrics tracking in server mode


  • custom: templates no longer fail schema validation

  • invalid auth tokens now cause a redirect to the login page even if they didn’t result from a timeout

  • Rasa X can be started without stories

  • wrong results when using GET /conversations with an intent query

  • the ansible playbook correctly updates the version variables in the .env file when updating an existing Rasa X instance

  • wrong redirecting of requests to /api/chatToken

  • MappingPolicy triggers are no longer removed from the domain

  • message which said models are not supported due to an incompatible model version of None

  • Rasa X no longer omits initial slot values in the domain which are 0

  • in server mode, the url to connect to duckling is automatically configured via the RASA_DUCKLING_HTTP_URL environment variable


  • when running in local mode, read Rasa events from SQLite events stream (events.db)

  • adding a template now returns status code 201 instead of 200

  • adding stories now provides multiple options for how you could achieve that

  • show different terms and conditions for Rasa Enterprise

  • using newer rabbitmq image which fixes https://github.com/bitnami/bitnami-docker-rabbitmq/issues/93

[0.20.0] - 2019-07-26


  • multi-select stories to compare them using shift-click

  • indexes for faster queries on NLU training data and conversation logs

  • environment variable DB_DRIVER allows using a custom database driver even if Rasa X is running in local mode

  • show input channel Tester for conversations by users which were invited with a link (only works with rasa >= 1.1.6)

  • endpoints to create, update, delete actions

  • Empty state placeholders with attached call to actions for a better user experience

  • PUT /settings returns a meaningful error if mandatory keys are missing from the YAML config, or if the YAML fails to be parsed correctly

  • nginx rule routing traffic to /api/chat to http://rasa-production:5005/webhooks/rasa/webhook


  • correctly show input channel in conversations tab

  • corrected credentials for rasa channel in Kubernetes / OpenShift guide

  • ESnext features now polyfilled as well as precompiled (for our supported browsers)

  • visualizations now work and render correctly for almost all stories, with the added ability to pan and zoom!

  • slot values containing # no longer causes an error during startup

  • robust model ordering in case two models have the same training time

  • fix code editor on firefox

  • version is reported correctly when Rasa X has been installed in editable mode (added a missing setuptools-scm requirement)

  • Prevent the on-boarding modal from showing once the user talks to his bot

  • if visualizations ever crash, they do so without the requirement to refresh your browser window to browse other non-broken stories


  • conversation trackers are computed from the Rasa X database instead of fetching them from Rasa

  • allow adding NLU examples to projects without domains

  • missing environments.yml leads to a warning for deployed instances

  • improve styling and general user experience for story editing

  • The way Popups are rendered has been updated for a better experience.

  • enforce event order by sorting them by timestamp when retrieving them from the database

  • move endpoint GET /domainActions to GET /project/<project_id>/actions

  • support now directs users to the forum and adds version info

  • layout of Talk to Your bot pages brought to design spec

[0.19.5] - 2019-07-09


  • bug which removed logging handlers

[0.19.4] - 2019-07-09


  • bug which suppressed the logging for Rasa X


  • Rasa containers don’t run in debug mode by default

[0.19.3] - 2019-07-05


  • deployment instructions for custom action servers

  • Start of end-to-end testing using cypress. At the moment only covers password login flow.

  • configurable Rasa X installation directory by using environment variable RASA_HOME


  • use OpenShift-compatible RabbitMQ version

  • support Rasa 1.1.4 feature to individually featurize entities

  • serialisation of actions at endpoint GET /domainActions as a list instead of a set

  • HTTP API Spec in documentation shows all endpoints which are specified in the api spec file

  • nginx proxy configuration does not lead to a duplication of trailing slashes anymore (fixes #3909)


  • faster queries for intents by using endpoint GET /projects/<project_id>/intents

  • the usage of the app container is now optional when deploying Rasa X

[0.19.2] - 2019-06-17


  • rendering of duplicate user messages/actions in the conversations screen

[0.19.1] - 2019-06-13


  • use alembic for database schema migrations

  • annotated NLU data is automatically added to the training data

  • automatic injection of domain and templates from the first discovered model in server mode

  • port of Rasa X and Rasa server can be configured via command line arguments in local mode

  • API endpoint to update role users at PUT /roles/<role>/users with a payload of a list of users who should be associated with that role

  • query parameter ?username to GET /users endpoint, returning users whose username matches pattern

  • query parameter ?role to GET /users endpoint taking a comma-separated list of roles, returning users whose roles match any of the supplied values

  • added configuration of domain in the UI as well as bidirectional syncing of that configuration with the file on disk

  • added RBAC permission UI


  • prepare all volume mounts in ansible playbook with correct permissions

  • remove non existing endpoints from API spec

  • updated instructions to create user in quick deployment guide

  • uploaded entity synonyms are dumped to the local training data md file

  • NLU logs can be created and promoted to training examples without a loaded model

  • entity extractors are persisted in training data


  • the db is not longer required in the environment.yml

  • endpoint to assign a single role to a user PUT /users/<user>/roles/<role> has been replaced with a multi-role update at PUT /users/<user>/roles with a list of role names (strings) as json payload

  • add index to column conversation_id of table conversation_event

  • add is_default and description columns to user_role table

  • improved query performance for model_for_tag queries

  • turn off SQLite key constraints for schema migrations

  • improved data injection performance by reducing the number of SQL commits

[0.19.0] - 2019-05-21


  • support for limit/ offset queries to /conversations endpoint

  • endpoint POST /conversations to manually create conversations

  • query interactive for GET /conversations endpoint to exclude interaction learning conversations

  • endpoint POST /conversations/<sender_id>/predict to predict the next action for the sender

  • endpoint POST /conversations/<sender_id>/execute to execute action in conversation

  • endpoint PUT /conversations/<sender_id>/events to modify events in a conversation

  • support for limit/ offset queries to /conversations endpoint

  • API endpoints to PUT /chatToken and GET /chatToken

  • API endpoints to POST /auth/jwt, POST /chat to allow users with sharable link to talk to bot though chat proxy endpoint

  • change permissions and /roles endpoint return format

  • API endpoints to PUT /roles/<role>, DELETE /roles/<role> and POST /roles

  • API endpoints to fetch and update the domain at GET/PUT /domain

  • API endpoint to fetch domain warnings at GET /domainWarnings

  • API endpoint to fetch domain actions at GET /domainActions


  • the ansible playbook now creates a valid credentials.yml file for Rasa Core


  • moved NLG and template API from /responses to /templates

  • use decorator for json schema validations