- A
Add a pre-task that validates the device's OS version and conditionally applies the appropriate module or command set
Pre-validation allows the playbook to use version-appropriate modules or commands, preventing silent failures.
- B
Implement idempotency checks in the playbook using the 'check_mode' option
Why wrong: Check mode only reports changes; it does not prevent module incompatibility.
- C
Set 'gather_facts: no' in the playbook to speed up execution and avoid version detection issues
Why wrong: Gathering facts is not the cause; disabling it removes useful information for conditionals.
- D
Replace the ios_bgp module with the ios_config module and use raw CLI commands for BGP configuration
Why wrong: Raw CLI commands might also fail on the new OS; moreover, they are less idempotent.
Quick Answer
The answer is to add a pre-task that validates the device's OS version and conditionally applies the appropriate module or command set. This is correct because the root cause of the Ansible BGP configuration loss after IOS upgrade is that the new IOS XE version introduced an incompatible BGP configuration model, causing the ios_bgp module to fail silently and remove existing configs. By validating the OS version as a pre-task, the playbook can branch to use either the legacy ios_bgp module or a different module or CLI commands tailored to the new model, ensuring idempotency and preventing silent failures. On the ENCOR 350-401 exam, this tests your understanding of network automation resilience and version-aware playbook design, a common trap being the assumption that modules are backward-compatible across major IOS versions. Remember the mnemonic: "Check before you wreck" — always validate the OS version to avoid BGP config wipeouts.
CCNP Automation Practice Question
This 350-401 practice question tests your understanding of automation. This is a configuration task: choose the command set that satisfies every stated requirement. Small differences — like 'secret' vs 'password' or 'transport input ssh' vs 'all' — change whether the answer is correct. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
A large enterprise uses a centralized automation platform based on Ansible Tower to manage its network infrastructure. The network consists of 500 Cisco IOS XE routers and switches distributed across multiple sites. The automation team has created a playbook that configures BGP peerings on all devices. The playbook uses the ios_bgp module. Recently, during a maintenance window, the playbook was run against a subset of devices that were supposed to be upgraded to a new IOS XE version. However, after the run, several devices lost their BGP configurations entirely. The team discovers that the new IOS XE version introduced a new BGP configuration model that is not fully compatible with the ios_bgp module's expected CLI commands. The playbook failed silently on those devices, and the existing BGP configuration was removed. The team needs to prevent this from happening in future maintenance windows. Which action should be taken?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
Add a pre-task that validates the device's OS version and conditionally applies the appropriate module or command set
Option A is correct because it directly addresses the root cause: the new IOS XE version uses an incompatible BGP configuration model. By adding a pre-task that validates the OS version, the playbook can conditionally apply the correct module (e.g., ios_bgp for older versions or a different module/CLI for the new model), preventing silent failures and configuration loss. This ensures the automation adapts to version-specific changes, maintaining idempotency and safety.
Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Add a pre-task that validates the device's OS version and conditionally applies the appropriate module or command set
Why this is correct
Pre-validation allows the playbook to use version-appropriate modules or commands, preventing silent failures.
Related concept
Read the scenario before looking for a memorised answer.
- ✗
Implement idempotency checks in the playbook using the 'check_mode' option
Why it's wrong here
Check mode only reports changes; it does not prevent module incompatibility.
- ✗
Set 'gather_facts: no' in the playbook to speed up execution and avoid version detection issues
Why it's wrong here
Gathering facts is not the cause; disabling it removes useful information for conditionals.
- ✗
Replace the ios_bgp module with the ios_config module and use raw CLI commands for BGP configuration
Why it's wrong here
Raw CLI commands might also fail on the new OS; moreover, they are less idempotent.
Common exam traps
Common exam trap: answer the scenario, not the keyword
Cisco often tests the misconception that idempotency (check_mode) or simply using raw CLI commands (ios_config) solves version incompatibility, when the real solution is version-aware conditional logic to handle model changes.
Trap categories for this question
Command / output trap
Raw CLI commands might also fail on the new OS; moreover, they are less idempotent.
Detailed technical explanation
How to think about this question
The ios_bgp module interacts with Cisco IOS XE via the CLI or NETCONF, expecting a specific BGP configuration hierarchy. When a new IOS XE version changes the BGP model (e.g., moving from traditional CLI to a YANG-based model), the module may fail to parse or apply commands, and due to its design, it can clear existing BGP configs if it cannot reconcile the desired state. A pre-task using 'ansible_net_version' from gathered facts or a custom fact can check the OS version and use 'when' conditions to select the appropriate module or command set, ensuring compatibility.
KKey Concepts to Remember
- Read the scenario before looking for a memorised answer.
- Find the constraint that changes the correct option.
- Eliminate answers that are true in general but not in this case.
TExam Day Tips
- Watch for words such as best, first, most likely and least administrative effort.
- Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Real-world example
How this comes up in practice
A small business has 20 workstations on the 192.168.1.0/24 network and one public IP from its ISP. The router uses PAT (NAT overload) so all 20 devices share one public address using different source ports. NAT questions test whether you understand the four address terms and which direction each translation applies.
What to study next
Got this wrong? Here's your next step.
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
- →
Automation — study guide chapter
Learn the concepts, then practise the questions
- →
Automation practice questions
Targeted practice on this topic area only
- →
All 350-401 questions
2,015 questions across all exam domains
- →
ENCOR 350-401 study guide
Full concept coverage aligned to exam objectives
- →
350-401 practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related 350-401 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Architecture practice questions
Practise 350-401 questions linked to Architecture.
Enterprise Network Design practice questions
Practise 350-401 questions linked to Enterprise Network Design.
SD-Access Architecture practice questions
Practise 350-401 questions linked to SD-Access Architecture.
SD-WAN Architecture practice questions
Practise 350-401 questions linked to SD-WAN Architecture.
QoS Architecture practice questions
Practise 350-401 questions linked to QoS Architecture.
Virtualization practice questions
Practise 350-401 questions linked to Virtualization.
Network Function Virtualization practice questions
Practise 350-401 questions linked to Network Function Virtualization.
Virtual Machines and Hypervisors practice questions
Practise 350-401 questions linked to Virtual Machines and Hypervisors.
VRF and Path Isolation practice questions
Practise 350-401 questions linked to VRF and Path Isolation.
Infrastructure practice questions
Practise 350-401 questions linked to Infrastructure.
OSPF practice questions
Practise 350-401 questions linked to OSPF.
BGP practice questions
Practise 350-401 questions linked to BGP.
Practice this exam
Start a free 350-401 practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this 350-401 question test?
Automation — This question tests Automation — Read the scenario before looking for a memorised answer..
What is the correct answer to this question?
The correct answer is: Add a pre-task that validates the device's OS version and conditionally applies the appropriate module or command set — Option A is correct because it directly addresses the root cause: the new IOS XE version uses an incompatible BGP configuration model. By adding a pre-task that validates the OS version, the playbook can conditionally apply the correct module (e.g., ios_bgp for older versions or a different module/CLI for the new model), preventing silent failures and configuration loss. This ensures the automation adapts to version-specific changes, maintaining idempotency and safety.
What should I do if I get this 350-401 question wrong?
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
What is the key concept behind this question?
Read the scenario before looking for a memorised answer.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
Keep practising
More 350-401 practice questions
- Drag and drop the steps to configure an extended access control list (ACL) on a Cisco router in the correct order.
- Drag and drop the steps to configure a site-to-site IPsec VPN on a Cisco router in the correct order.
- Drag and drop the steps to configure VLAN Trunking Protocol (VTP) on a Cisco switch in the correct order.
- Drag and drop the steps to configure a static route on a Cisco IOS router into the correct order.
- Drag and drop the steps to configure port security on a Cisco switch in the correct order.
- Drag and drop the steps for the Spanning Tree Protocol (STP) convergence process in the correct order.
Last reviewed: Jun 11, 2026
This 350-401 practice question is part of Courseiva's free Cisco certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 350-401 exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.