Ansible v2.18.19 was published on August 10, 2026. Its main operator visible change fixes parallel fact gathering that could hang when async job files were corrupt, while a related timeout correction makes the async wrapper account for remaining job time.
The full release notes and downloads are on the GitHub release page.
Parallel fact gathering gets two correctness fixes ¶
Parallel fact gathering has the most direct production impact in this release. A corrupt async job file could leave the operation hanging. Ansible now handles that state instead of allowing the fact gathering phase to remain stuck.
The second change is in the async wrapper timeout logic. The wrapper now considers the configured timeout when it decides whether to kill the process running the module. Previously, it slept for five seconds twice before checking whether the job still had time remaining. That fixed delay could add up to ten seconds before the decisive check, even when the configured budget was already near its end.
For platform teams, the narrower value is more predictable completion behavior around async module processes. A fact phase that observes its intended timeout more closely is less likely to hold up later tasks, batch windows, or CI jobs. The notes do not claim faster module execution, so this should not be treated as a general performance improvement.
The two fact gathering changes cover different failure paths. The corrupt file fix concerns stored async state that cannot be read correctly. The timeout change concerns a live module process whose remaining runtime is checked after fixed sleeps. Operators should keep those cases separate in logs and runbooks, even if both appear as a stalled fact phase. The release notes name no new setting, default, or playbook syntax for either change. This is a runtime correction inside existing behavior, not a feature that must be enabled.
Explicit test targets survive filtering ¶
The other bug fix applies to ansible-test. Target filtering now preserves user specified versions that do not appear in the completion configuration. Previously, an explicitly requested version could be removed when it was absent from that configuration.
This matters for collection maintainers testing versions outside the standard completion list. A CI matrix or local validation run should now retain the version named by the operator. The release does not describe new flags or wider test runner changes, so existing commands remain the reference point.
The documented scope is target filtering. Retaining a target does not by itself mean that the version is supported or that its tests will pass. It ensures that a user specified version reaches the selected test run instead of disappearing during filtering.
Together, these are the three code changes documented for v2.18.19. The full changelog classifies the timeout adjustment as a minor change and the corrupt job file and target filtering corrections as bug fixes. No breaking change or migration step is listed for this release.
Published artifacts can be pinned ¶
The release provides a Python wheel and a source distribution. The wheel, ansible_core-2.18.19-py3-none-any.whl, is 2,218,069 bytes and has SHA256 digest 00f53c10d97ce001f6e49857820901b3e8d2f234cb9f5fd9fdf8092c14109fa0.
The source archive, ansible_core-2.18.19.tar.gz, is 3,112,520 bytes. Its SHA256 digest is 1b92051152c24a5bdee92ee88fccf848ba056d835b58640508328f877f0957db. These values give artifact mirrors and image builds exact pins for verifying the package before it reaches an automation runner.
Where to get it ¶
- Release: Ansible v2.18.19
- Repository: ansible/ansible
- Tag:
v2.18.19