Release Notes

Refer to the latest Product Documentation for Red Hat Ansible Automation Platform for the complete Automation Platform documentation.

Automation Controller Version 4.4

New Features

  • Administrative users can now enable a tech preview of the new controller UI, which includes some basic and limited functionality around creating and viewing the resources needed to launch a job template (AAP-9133)

  • A tech preview version of the Automation Calculator utility that shows a report that represents (possible) savings to the subscriber (AAP-7331) See Analytics Reports for more information.

  • IBM Z/Power support has been added as a tech preview feature for Ansible Automation Platform 2.4 and ARM support is added so you can now run automation controller on an ARM machine with or without using the bundle installer (AAP-7975)

  • Ability to launch multiple jobs at once via a new API endpoint, /api/v2/bulk/job_launch (AAP-7953)

  • Ability to add multiple hosts at once via a new API endpoint, /api/v2/bulk/host_create (AAP-5706)

  • Provided a new page for showing which hosts are consuming the subscription count and allowing users to delete hosts that are no longer used so they are not counted against the subscription consumption (AAP-9046) See Subscription compliance for more information.

  • Introduced the ability to scale web and task pods independently (AAP-6025)

  • Conjur Cloud support to CyberArk Conjur Secrets Lookup (AAP-6643) See CyberArk Conjur Secrets Manager Lookup for detail.

  • Added the ability to use host and groupvars in order to create Constructed Inventories from other inventories (AAP-3687)

  • Added the ability to run automation against Constructed Inventories (AAP-3687)

  • Added Max concurrent jobs and Max forks fields in the Instance Group and Container Groups Create and Edit screens of the controller UI to allow users to define an instance group maximum of jobs that will be run on an instance group or sum of forks of all jobs to be run an instance group, making this especially useful for container groups where there is no concept of capacity (AAP-6699) See Instance group capacity limits for more information.


  • Added the ability for automation controller to tolerate the restart of Kubernetes master node during job execution and as a result, jobs will no longer fail due to a master node restart (AAP-12590)

  • The Add button is now available for organization Admins to be able to add roles to the team (AAP-11618)

  • Missing API metrics related to task_manager, dependency_manager, and workflow_manager are added to the /api/v2/metrics/ endpoint to standalone scenarios (AAP-10795)

  • Added use of static Central Credential deployment for CyberArk on cloud (AAP-7272) See CyberArk Central Credential Provider (CCP) Lookup for more detail.

  • Expanded the Advanced search capability in the controller UI to support the lookup type of exact on related keys (AAP-6886)

Updates or Fixes

  • After database failover, the Dispatcher now recovers and resumes normal operation (AAP-12462)

  • Users can now specify an SCM branch override on the inventory source and inventory update, similar to how it is done for job templates (AAP-9150) See Inventory Sources for detail.

  • 'Normal' users now have the ability to select instance groups on job templates in the UI (AAP-5170)

  • Changed the Operator to split web and task into separate deployments (aka Web-Task split). Redis now runs as a separate container inside of the pod in the OpenShift Container Platform . Now that web/task are separate pods, they now both have their own dedicated redis containers and use another service to clear cache (clear_cache) and restart rsyslog (rsyslog_reconfigurer). (awx-operator#1182)

  • Requests to HashiCorp Vault clusters will be retried if an HTTP 412 error is received from the HashiCorp Vault server instead of failing (AAP-8503)

  • Updated the controller UI to pre-populate information from a credential and inventory when creating a job template from the context of a credential or inventory, respectively (AAP-7286)

  • Updated the Job Template form to allow the playbook filename to be manually entered even if those filenames are not present in the select list (AAP-5672)

  • Improved the speed of saving facts to hosts at the end of a job, and ensured that facts are saved before the status changes so that downstream workflow nodes can make use of host fact saved by the prior node (AAP-9144)

  • Removed validation check that was disallowing users from editing the hostname of a host attached to an inventory when the max_hosts limit was reached for a particular organization (AAP-4487)

  • "Related Groups" column added back to "Hosts" views in the controller UI (AAP-4538)

  • Re-added the Approve and Deny buttons to the list toolbar of the controller UI (AAP-8384)

  • Added a password field to the user serializer if a user is an internal user. This allows for the awx.awx.user module to respect the update_secrets parameter. This also changes the /api/v2/users endpoint by adding a password field to the returned payload on a GET which will have a value of "$encrypted$" (awx#13704)

  • Users logging in through LDAP are now properly being mapped into teams based on their LDAP groups (AAP-9067)

  • The LDAP adapter no longer removes users from admin roles (and others) for an organization even if the remove_* flag was set to False (AAP-8696)

  • The LDAP adapter no longer manages a team by name regardless of the organization the team was in, preventing users of a particular team from logging into the system through LDAP and being unnecessarily added to multiple organizations due to the same team name (AAP-8063)

  • Improved performance of the SAML login process (AAP-4671)

  • Jobs due to X509_V_FLAG_CB_ISSUER_CHECK attribute no longer produces an error (AAP-12618)

  • Saving a workflow in the controller UI will no longer save an empty string for scm_branch, which previously resulted in undesired changing of the branch jobs used (AAP-7638)

  • Editing a node no longer defaults to All Convergence in the Workflow Visualizer of the controller UI (AAP-7243)

  • Controller containers in an Openshift Container Platform now operate as expected when running 100 jobs or more (AAP-6406)

  • When executing a playbook that contains multiple credentials in the job template, the correct error displays (AAP-5951)

  • Triggered notifications perform a POST request during job template runs as expected (AAP-5785)

  • Accessing the globally available execution environments no longer produces a 500 error or a 400 error while assigning the "Execution Environment Admin” permission to a user (AAP-2551)

  • The frequency of the scheduler now run ons the correct day of the week as specified by the user (AAP-11776)

  • Management jobs scheduled with a "days" parameter can now be edited (AAP-10338)

  • Disabled schedules no longer lose access to encrypted survey values (AAP-4501)

  • Fixed the date picker to no longer select dates in the past and prevent saving (AAP-4499)

  • Thycotic Secret Server credential type can now handle secret types such as SSH key or Digital Certificate in addition to just Password templates (AAP-11711 and AAP-11795)

  • Changing credential types using the dropdown list in the Launch prompt window no longer causes the screen to disappear (AAP-11444)

  • Fixed broken name search in the credentials step of ad-hoc commands and updated adhoc credentials search queries to include icontains (AAP-9668)

  • Missing Vault ID in the credential edit form no longer prevents vault credential to update properly (AAP-11438)

  • Viewing job details of a job template that has been deleted no longer displays an error (AAP-7236)

  • Variables in the controller UI can now be edited in YAML format (AAP-5540)

  • The login form no longer supports auto-complete on the password field due to security concerns (AAP-5437)

  • Corrected the behavior of the controller UI to no longer display the "waiting" status while a job is running (AAP-5273)

  • The controller now tolerates resume streaming stdout from job execution container after being disconnected from Kubernetes API server (AAP-5116)

  • Corrected broken docs link in the controller UI during product registration (AAP-4903)

  • The job output in the controller UI is now updating correctly despite to gap between API-loaded job events and WS-streamed events (AAP-4730)



  • Removed auto-complete for fields in the controller UI to prevent exposing sensitive information (AAP-8543)

Automation Controller Version 4.3.4

Automation Controller fixes:

  • Starting the application no longer results in 'listener_port' not-null constraint violation error (AAP-8096)

  • Shell escaping no longer produces special characters in the Administrator password (AAP-7972)

Automation Controller Version 4.3.3

Automation Controller fixes:

  • Accessing execution environments functions as expected when upgrading from Ansible Tower 3.x (AAP-2551)

  • Updated the receptor to 1.3.0-3 to avoid replacing receptor.conf on upgrade (AAP-7938)

Automation Controller UI fixes:

  • The Save button now responds appropriately on the Job Settings page (AAP-7757)

Automation Controller Version 4.3.2

Automation Controller UI fixes:

  • Fixed the Job Template Launch page to no longer result in a 'Not Found' error when choosing credentials (AAP-7507)

Automation Controller Version 4.3.1

Automation Controller fixes:

  • Fixed issue upgrading to Ansible Automation Platform 2.3 (AAP-7353)

Automation Controller UI fixes:

  • The Hosts Automated field on the Subscriptions Detail page is now correctly translated

Automation Controller Version 4.3

New Features

  • Added the ability for control nodes to peer out to remote execution nodes (on a Kubernetes deployment only)

  • Introduced peers detail tab for instances

  • Introduced the ability to create and remove instances in the controller UI

  • Updated nodes/links in the Topology Viewer of the controller UI to support new states

  • Enabled health checks to be run on remote execution nodes on a Kubernetes deployment

  • Added the ability for Kubernetes users to create instance groups

  • Added project/playbook signature verification functionality to the controller, enabling users to supply a GPG key and add a content signing credential to a project, automatically enabling content signing for that project

  • Introduced ansible-sign, a content signing and verification utility that provides a unified way to sign content across the Ansible eco-system

  • Support for schedules with the awx-cli import and awx-cli export features

  • Surfaced database connections in /api/v2/metrics


  • Topology viewer now shows new node and link states

  • Mesh topology shows directionality of links between nodes

  • The ability to pass variable value from a nested workflow job template to a job template or workflow job template using the set_stats module

  • Added Prompt on Launch options on all parameters of the job template and workflow job templates

  • Added Job and Skip tags on workflow job templates and accompanying Prompt on Launch options

  • Configurable timeout settings for the receptor

  • Added missing security headers to application URLs

  • Metrics added for Support Engineers and customers to analyze, problem solve performance-related issues with lags in job events

  • The controller now polls the job endpoint to determine exactly when events are done processing and the UI displays a message when it has finished processing events for the job

  • Include forks on job and/or job template data for Automation Analytics

  • Forks information no longer missing in running job details

  • Schedules now allow date exceptions

  • Optimized/cache information about preferred instance groups

  • Control for capacity decisions and task worker availability

  • Survey wizard now handles multiple choice/multi-select question-answers in both array and string form (formerly only strings were supported)

  • Surveys can now auto-complete in multiple choice input fields

  • Added options for setting the priority class on the control plane and PostgreSQL pods

  • Subscription Details indicating whether the customer is in or out-of-compliance with their subscriptions

  • Added the ability for Receptor Ansible collection to provision receptor node(s)

  • Added the ability to deprovision external execution nodes

  • Added playbook with all the required variables for provisioning new remote execution nodes

  • Pop-up help text added to Details fields of job templates, workflow job templates, credentials, projects, inventories, hosts, organizations, users, credential types, notifications, instance groups, applications, and execution environments

  • Extra variables added to workflow approval notifications

Updates or Fixes

  • Topology Viewer links, nodes, legend, list view "Status" updated to reflect new states

  • Updated the Topology viewer to show more node detail

  • Topology Viewer no longer fails to populate when launched

  • Updated the controller to handle asynchronous health checks on an instance

  • Nodes are now moved to a deprovisioning state when removing from the controller UI

  • Increased the number of allowed characters for the job_tags (Job Tags field) in a template

  • Job schedules are no longer missing from the Schedules view when sorting by type

  • Schedules now prompting for job or skip tags

  • Browser timezone automatically set as default when creating a schedule

  • Fixed issue with adding a schedule to an inventory source

  • LDAP / LDAPS connections no longer stay open after a user has logged out

  • Refactored LDAP backend to be more efficient, including reduced initial login time after increasing list of LDAP mappings

  • Job launch failure error now contains more succinct and informative messaging in the event that content signature validation fails

  • Users with Admin permissions on a workflow are able to assign an inventory to the workflow job template

  • Approval node toolbar buttons updated to improve the Workflow approval user experience

  • Workflow approval templates are now exportable

  • Admin users can now copy a workflow job template

  • Node rejoins cluster as expected after connection to PostgreSQL is lost

  • Workflow or sliced jobs no longer blocked or fails when ran

  • Sliced jobs no longer produce 500 errors when performing a GET operation while launching more than 500 slices

  • Jobs no longer fails if Job Slicing and Fact Storage are enabled together

  • Adhoc command jobs no longer result in error when ran

  • Fixed error that resulted from relaunching an adhoc command with password

  • Advanced search updated to only allow users to select valid or logical match types to avoid unnecessary 500 errors

  • Included updates and enhancements to improve performance associated with the Task Manager in the handling of scaling jobs, mesh and cluster sizes

  • Job output performance improvements

  • Job output screen user experience improvements

  • Job timeout details showing in the Job Output as expected

  • Job Settings page updated to no longer produce 404 errors and other various warnings

  • First Run / Next Run values of the job schedule fixed to no longer change to one day before the date entered in the Edit/Add page of the schedule settings

  • Job template with concurrent jobs launches as expected if capacity allows the controller to run more jobs

  • awx-cli import and awx-cli export now produce an error message and provide appropriate exit codes when an imported or exported operation fails

  • Default cleanup schedules no longer only run once

  • Updated SAML adapter to not remove System Administrator and System Auditor flags

  • Lookup modals refresh when opened

  • Twilio notifications can now be sent from the controller from behind a proxy

  • Custom credential type creation works as expected

  • Updated strings for translation

  • The Demo Project will now initially show a status of "successful" and will not update on launch, whereas before it showed "never updated" and updated on launch

  • Inventory updates based on an SCM source now provides the revision of the project it used

  • Removing hosts from inventories no longer fails with "Out of Shared Memory" error

  • Manually gathering analytics from CLI no longer results in a unicode error

  • Filter websockets related to sync jobs on jobs list(s) when refreshed, these jobs will be filtered again from the Jobs view

  • The GOOGLE_APPLICATION_CREDENTIALS environment variable is now being set from a Google Compute Engine (GCE) credential type

  • Fixes some stability issues with ansible-runner worker processes and related logging slowdowns in the Dispatcher task processing


None in this release.


  • Removed the Update on Project Update field (update_on_project_update) in projects. This is intended to be replaced by ordinary "Update on Launch" behavior, because they chain from inventory to project. So if this option was previously set on the inventory source, it is recommended that both inventory and project are set to "Update on Launch".

  • The Credential Permissions page no longer allows Credential Admin or Org Admins to manage access operations for a credential that does not belong to any organization

  • Fallback behavior removed when an instance group is defined on a job template or inventory

Automation Controller Version 4.2.1

Automation Controller fixes:

  • Node alias is now saved when job template is changed in the workflow

  • Improved error messages in the API job_explanation field for specific error scenarios, (e.g., runner worker process is killed), or certain failure scenarios (e.g., shutdown)

  • Fixed the Task Manager to fully account for the job's control process capacity for jobs running in container groups

  • Fixed a few bugs that caused delays in task processing by adding the following file-based settings:
    • JOB_WAITING_GRACE_PERIOD increases the threshold for marking jobs stuck in the "waiting" status as failed

    • CLUSTER_NODE_MISSED_HEARTBEAT_TOLERANCE to allow the heartbeat to be more tolerant to clock skew and other problems

    • K8S_POD_REAPER_GRACE_PERIOD to allow more time before pod cleanup executes its last attempt to delete pods used by jobs

    • TASK_MANAGER_TIMEOUT to allow more time in the unlikely event that the Task Manager fails to finish normally

  • Jobs no longer fail for nested submodules in an SCM (git) project and the .git folder will be omitted

  • Added more logs to help debug database connectivity problems and cluster resource limits

  • Removed the current_user cookie which was not used by the UI

  • Updated controller to send FQCN data for tasks to analytics

  • Fixed the metrics endpoint (/api/v2/metrics) to no longer produce erroneous 500 errors

  • Added remove_superuser and remove_system_auditors to the SAML user attribute map

  • Added the ability to allow multiple values in the SOCIAL_AUTH_SAML_USER_FLAGS_BY_ATTR.is_*_[value|role] settings

  • Unwanted Galaxy credentials are no longer added to the Organization while logging in through SAML

  • awx-cli now allows for multiple --extra_vars parameters

  • Receptor no longer fails in FIPS mode

  • If an OCP node's record is deleted (either by the awx-manage command or by the heartbeat task), it will re-register itself

  • Upgrading and changing node_type from execution to control or hybrid no longer causes cleanup errors

Execution Environment fixes:

None for this release

Automation Controller UI fixes:

  • The controller UI properly displays job output when strategy: free is set in the playbook

  • Fixed the pagination displays within the main lists, i.e., Resources (Job Templates, Projects, Inventory), Access (Organization, Users, Teams, Notifications), and Administration (Instance Groups, Execution Environments)

  • Fixed the Job Output to properly follow and scroll; and improved the Page Up/Page Down button behavior

  • Fixed the controller UI to now be able to filter by multiple labels

  • Large workflow templates no longer cause browsers to crash when linking nodes near the end of the template

  • Fixed the approval node "Deny" to no longer run the subsequent workflow nodes

  • Forks information no longer missing in running job details

  • Upon saving a schedule, the date chooser no longer changes to the day before the selected date

  • References to Ansible Tower are replaced with Automation Controller throughout the UI, including tooltips where documentation is referenced

  • Corrected translations for the Japanese Subscription settings screen

Installation fixes specific to Automation Controller:

None for this release

Automation Controller Version 4.2


  • Graphical visualization of the automation topology to show the types of nodes, the links between them and their statuses


  • For VM-based installs, the controller will now automatically mount the system trust store in execution environments when jobs run

  • Log Format For API 4XX Errors field to the Logging settings form to allow customization of 4xx error messages that are produced when the API encounters an issue with a request

  • Ability to use labels with inventory

  • Ability to flag users as superusers and auditors in SAML integration

  • Support for expanding and collapsing plays and tasks in the job output UI

  • Filtering job output UI by multiple event types

  • Various default search filters to a number of list views

  • Top-level list of instances to now be visible in the UI

  • A pop-up message when a user copies a resource

  • Job Templates tab to Credentials and Inventories to view all the templates that use that particular credential or inventory


  • Controller to use Python 3.9

  • Django's SESSION_COOKIE_NAME setting to a non-default value. Note, any external clients that previously used the sessionid cookie will need to change. Refer to Session Authentication for more detail.

  • Controller to support podman-style volume mount syntax in the Paths to expose to isolated jobs field of the Jobs Settings of the UI

  • Isolated path to be exposed in OCP/K8s as HostPath

  • Upgraded Django from version 2.2 to 3.2

  • Modified usage of ansible_facts on Advanced Search to add more flexibility to the usage of ansible_facts when creating a smart inventory

  • The controller node for a job running on an execution node now incurs a penalty of 1 unit of capacity to account for the system load that controlling a job incurs. This can be adjusted with the file-based setting AWX_CONTROL_NODE_TASK_IMPACT.

  • Project updates to always run in the controlplane instance group

  • Slack notifications to allow replying to a thread instead of just channels

  • UI performance to improve job output

  • Job status icons to be more accessible

  • Display of only usable inventories when launching a job

  • Browser tab to show more information about which page the user is currently viewing

  • Controller to now load variables after job template extra variables to prevent overriding the meta variables injected into each job run


  • The concept of "committed capacity" from Instance Groups due to the removal of RabbitMQ

  • Inventory source option to Update on project update - this field updates the inventory source if its project pulled a new revision. In the future, when updating an inventory source, the controller shall automatically run project updates if the project itself is set to Update on launch.


  • Case sensitivity around hostcount

Automation Controller fixes:

  • When setting the use role on a credential to more than 10 users, users are no longer added on different admin roles unexpectedly

  • Fixed the fallback cleanup task to not delete files in-use

  • Updated inventory hosts to allow editing when organization is at max host limit

  • Enabled job slicing with fact caching now correctly saves facts for hosts from the relevant slice

  • No longer validating hostnames when editing the hostname on an existing host

Execution Environment fixes:

  • Fixed jobs stuck in running when timing out during an image pull

Automation Controller UI fixes:

  • Fixed list search/pagination filters in place when clicking the Back to <N> button. Applies to all top-level list pages except the Schedules page.

  • Updated Subscription and inventory usage details, including a status indicating whether the customer is in or out-of-compliance with their subscriptions

  • Survey wizard now handles multiple choice/multi-select question-answers in both array and string form (formerly only strings were supported)

  • Fixed error that resulted from relaunching an adhoc command with password

  • Updated filter websockets related to sync jobs on jobs list(s) that when refreshed, these jobs will be filtered again from the Jobs view

  • Added validation for same start/end day different time schedules

Automation Controller Version 4.1.3

Automation Controller fixes:

  • Receptor no longer fails in FIPS mode

  • Added the ability to exit gracefully and recover quickly when a service in the control plane crashes

  • The create_partition method will skip creating a table if it already exists

  • Having logging enabled no longer breaks migrations if the migration sends logs to an external aggregator

  • Fixed the metrics endpoint (/api/v2/metrics) to no longer produce erroneous 500 errors

Execution Environment fixes:

  • Enhanced the execution environment copy process to reduce required space in the /tmp directory

  • Allowed execution environment images to be pulled from automation controller only

  • Added the ansible-builder-rhel8 image to the setup bundle

  • Modified base execution environment images so that controller backups can run in the container

Automation Controller UI fixes:

  • Upon saving a schedule, the date chooser no longer changes to the day before the selected date

  • Fixed the ability to create manual projects in Japanese and other supported non-English languages

  • Forks information no longer missing in running job details

  • Project selected for deletion is now removed as expected when running a project sync

  • The Admin option in the Team Permissions is now disabled so that a user cannot select it when it is not applicable to the available organization(s)

  • Large workflow templates no longer cause browsers to crash when linking nodes near the end of the template

  • References to Ansible Tower are replaced with Automation Controller throughout the UI, including tooltips where documentation is referenced

Installation fixes specific to Automation Controller:

  • Updated the Receptor to 1.2.3 everywhere as needed

Automation Controller Version 4.1.2

Automation Controller fixes:

  • Upgraded Django version to 3.2 LTS

  • System (management) jobs are now able to be canceled

  • Rsyslog no longer needs manual intervention to send out logs after hitting a 40x error

  • Credential lookup plugins now respect the AWX_TASK_ENV setting

  • Fixed the controller to list valid subscriptions from Satellite when having multiple quantities from the same SKU

  • Updated Receptor version to 1.2.1, which includes several fixes

Execution Environment fixes:

  • The host trusted cert store is now exposed to execution environments by default. See Isolation functionality and variables for detail.

  • Mounting the /etc/ssh or /etc/ to isolated jobs now works in podman

  • User customization of execution environment mount options and mount paths are now supported

  • Fixed SELinux context on /var/lib/awx/.local/share/containers and ensure awx as podman storage

  • Fixed failures to no longer occur when the semanage fcontext has been already set for the expected directory

Automation Controller UI fixes:

  • Fixed the ability to create manual projects in Japanese and other suppported non-English languages

  • Fixed the controller UI to list the roles for organizations when using non-English web browsers

  • Fixed the job output to display all job type events, including source control update events over websockets

  • Fixed the TypeError when running a command on a host in a smart inventory

  • Fixed the encrypted password in surveys to no longer show up as plaintext in the Edit Order page

Installation fixes specific to Automation Controller:

  • Fixed duplicate Galaxy credentials with no default organization

  • Running the ./ -b out of the installer directory no longer fails to load group vars

  • The installer no longer fails when IPV6 is disabled

  • Fixed unnecessary become_user:root entries in the installation

  • Modified database backup and restore logic to compress dump data

  • Creating default execution environments no longer fails when password has special characters

  • Fixed installations of execution environments when installing without internet access

  • Upgrading to AAP 2.1 no longer breaks when the Django superuser is missing

  • Rekey now allowed with existing key

Automation Controller Version 4.1.1

  • Added the ability to specify additional nginx headers

  • Fixed analytics gathering to collect all the data the controller needed to collect

  • Fixed the controller to no longer break subsequent installer runs when deleting the demo organization

Automation Controller Version 4.1


  • Connected Receptor nodes to form a control plane and execution mesh configurations

  • The special controlplane instance group to allow for the task manager code to target an OpenShift Controller node to run the project update

  • The ability to render a configured mesh topology in a graph in the installer

  • Controller 4.1 execution nodes can be remote

  • Node types for Controller 4.1 (control, hybrid, execution, hop, control, hybrid, execution, hop) installed for different sets of services and provide different capabilities, allowing for scaling nodes that provide the desired capability such as job execution or serving of web requests to the API/UI.


  • The ability for the platform installer to allow users to install execution nodes and express receptor mesh topology in the inventory file. The platform installer will also be responsible for deprovisioning nodes.

  • Work signing to the receptor mesh so that control plane nodes have the exclusive authority to submit receptor work to execution nodes over the mesh

  • Support for pre-population of execution environment name, description, and image from query parameters when adding a new execution environment in the Controller User Interface

  • Ability to trigger a reload of the topology configuration in Receptor without interrupting work execution

  • Using Public Key Infrastructure (PKI) for securing the Receptor mesh

  • Added importing execution environments from Automation Hub into the controller to improve the platform experience


  • The controller to support new controller control plane and execution mesh

  • Task manager will only run project updates and system jobs on nodes with node_type of "control" or "hybrid"

  • Task manager will only run jobs, inventory updates, and ad hoc commands on nodes with node_type of "hybrid" or "execution"

  • Heartbeat and capacity check to work with Receptor execution nodes

  • Reaper to work with the addition of execution nodes

  • Controller User Interface to not show control instances as an option to associate with instance groups

  • The Associate pop-up screen to display host names when adding an existing host to a group

  • Validators for editing miscellaneous authentication parameters

  • Advanced search key options to be grouped

  • SAML variables default values

  • Survey validation on Prompt on Launch

  • Login redirect


  • None


  • The ability to delete the default instance group through the User Interface

Automation Controller Version 4.0.1

  • Upgraded Django version to 3.2 LTS

  • Updated receptor to version 1.2.1

Automation Controller Version 4.0


  • Support for automation execution environments. All automation now runs in execution environments via containers, either directly via OpenShift, or locally via podman

  • New PatternFly 4 based user-interface for increased performance, security, and consistency with other Ansible Automation Platform components


  • Added identity provider support for GitHub Enterprise

  • Support for RHEL system crypto profiles to nginx configuration

  • The ability to disable local system users and only pull users from configured identity providers

  • Additional Prometheus metrics for tracking job event processing performance

  • New awx-manage command for dumping host automation information

  • Red Hat Insights as an inventory source

  • Ability to set server-side password policies using Django's AUTH_PASSWORD_VALIDATORS setting

  • Support for Centrify Vault as a credential lookup plugin

  • Support for namespaces in Hashicorp Vault credential plugin


  • OpenShift deployment to be done via an Operator instead of a playbook

  • Python used by application to Python 3.8

  • Nginx used to version 1.18

  • PostgreSQL used to PostgreSQL 12, and moved to partitioned databases for performance

  • The “container groups” feature to general availability from Tech Preview; now fully utilizes execution environments

  • Insights remediation to use new Red Hat Insights inventory source rather than utilizing scan playbooks with arbitrary inventory

  • Subscriptions display to count hosts automated on instead of hosts imported

  • Inventory source, credential, and Ansible content collection to reference controller instead of tower


  • None


  • Support for isolated nodes

  • Support for deploying on CentOS (any version) and RHEL 7

  • Support for Mercurial projects

  • Support for custom inventory scripts stored in controller (use awx-manage export_custom_scripts to export them)

  • Resource profiling code (AWX_RESOURCE_PROFILING_*)

  • Support for custom Python virtual environments for execution. Use new awx-manage tools for assisting in migration

  • Top-level /api/v2/job_events/ API endpoint

  • The ability to disable job isolation