# INJECT\_FACTS\_AS\_VARS is defaulting to False in 2.24

**URL:** <https://forum.ansible.com/t/inject-facts-as-vars-is-defaulting-to-false-in-2-24/44886>\
**Category:** Get Help\
**Tags:** ansible-core\
**Created:** [November 23, 2025, 9:09am UTC](https://forum.ansible.com/t/inject-facts-as-vars-is-defaulting-to-false-in-2-24/44886 "2025-11-23T09:09:08Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![bcoca](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/bcoca/32/9269_2.png) [@bcoca](https://forum.ansible.com/u/bcoca)\
**Post date:** [November 24, 2025, 3:14pm UTC](https://forum.ansible.com/t/inject-facts-as-vars-is-defaulting-to-false-in-2-24/44886/5 "2025-11-24T15:14:06Z")

</div>

This only deprecates the default value of ‘injection’, so we can turn it off by default.

There is a plan on eventually deprecating the injection itself, but that will come later, after the revamp of `register` to add projections (probably in next version) and adding a way for actions to cleanly and purposefully set variables.

Long story about `set_fact`:  
`set_fact` was initially named `set_var` but this was misleading and `set_host_scoped_var` was … too long. So after many discussions `set_fact` was the name of compromise, misleading one as it did not ‘set a fact’, but a higher priority hope scoped variable with higher priority than facts. Eventually `cacheable` was added to allow for it also to be stored in the cache … but what really happens under the hood is that 2 variables get created, the aforementioned host scoped variable with higher precedence AND an actual fact, both set to the same value. The fact, gets cached and has ‘fact level precedence’ once retrieved from the cache, in subsequent runs, as in the ‘current’ run the host scoped variable will still exist and have the higher precedence.

---

_[View the full topic](https://forum.ansible.com/t/inject-facts-as-vars-is-defaulting-to-false-in-2-24/44886)._
