Question 41 of 519
Interact with Terraform moduleshardMultiple ChoiceObjective-mapped

Quick Answer

The answer is that Terraform cached the previous module version and did not download the new one. This occurs because Terraform stores downloaded modules in the `.terraform` directory, and after changing the module source or version constraint—such as updating the `ref` parameter in a Git source URL—you must run `terraform init` with the `-upgrade` flag to force Terraform to re-fetch the module. Without that flag, Terraform reuses the cached copy, causing the plan to reflect the old module’s resources even when the remote repository contains the new tag. On the HashiCorp Terraform Associate TF-003 exam, this tests your understanding of module sources and version constraints, specifically how Terraform’s caching behavior can lead to stale state if you forget to upgrade. A common trap is assuming `terraform init` alone always downloads the latest version; in reality, it only downloads missing modules. Memory tip: think “init upgrades, not just init”—always add `-upgrade` when you change a version constraint or source reference.

TF-003 Interact with Terraform modules Practice Question

This TF-003 practice question tests your understanding of interact with terraform modules. Examine the command output carefully: the correct answer depends on what the output actually shows, not on general recall alone. 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 organization uses Terraform to manage infrastructure across multiple AWS accounts. They have a shared module for VPC stored in a private Git repository (git::https://github.com/org/terraform-aws-vpc.git?ref=v1.0.0). After updating the module source to ref=v1.2.0, they run terraform init and then terraform plan. The plan still shows the old module's resources and behavior. They confirm the new tag exists and the module code has changed. The root module source line is correct. What is the most likely cause?

Clue words in this question

Noticing these words before you look at the options changes how you read each choice.

  • Clue: "most likely"

    Why it matters: Probability qualifier — the question wants the most probable cause or outcome, not a guaranteed one. Eliminate low-probability options.

Question 1hardmultiple choice
Full question →

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

Terraform cached the previous module version and did not download the new one.

Option C is correct. Terraform caches modules locally; after changing the source ref, terraform init must be run to download the new version. If the user forgot to include the -upgrade flag or did not clean the cache, Terraform may use the cached version. Option A is not a standard command. Option B would cause an error. Option D (output changes) would not cause the plan to show old behavior if the module code is new.

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.

  • They forgot to run terraform get.

    Why it's wrong here

    terraform get is an older command, but terraform init handles module downloads.

  • The module source URL is incorrect.

    Why it's wrong here

    An incorrect URL would produce an error during terraform init, not a silent use of old cached code.

  • Terraform cached the previous module version and did not download the new one.

    Why this is correct

    Terraform caches modules; running terraform init with -upgrade or clearing the .terraform directory forces a fresh download.

    Clue confirmation

    The clue word "most likely" in the question point toward this answer.

    Related concept

    Read the scenario before looking for a memorised answer.

  • The module's outputs changed and they need to update the root module.

    Why it's wrong here

    Changes to outputs would affect the plan only after the new module code is loaded; they would not cause the old behavior to persist.

Common exam traps

Common exam trap: answer the scenario, not the keyword

Many certification questions include familiar terms but test a specific constraint. Read the exact wording before choosing an answer that is generally true but wrong for this case.

Trap categories for this question

  • Command / output trap

    terraform get is an older command, but terraform init handles module downloads.

Detailed technical explanation

How to think about this question

This question should be treated as a scenario, not a definition check. Identify the problem, the constraint and the best action. Then compare each option against those facts.

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.
  • Use explanations to understand the rule behind the answer.

TExam Day Tips

  • Underline the problem statement mentally.
  • 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 practitioner preparing for the TF-003 exam encounters this exact type of scenario on the job. The correct answer here is not the most general option — it is the best answer for the specific constraint described. Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option. Real exam questions reward reading the full scenario before eliminating options, because the constraint defines which answer fits.

What to study next

Got this wrong? Here's your next step.

Identify which TF-003 exam domain this question belongs to, then review the specific concept being tested. Practise related questions in that domain and focus on understanding why each wrong answer is tempting — not just why the correct answer is right.

Related practice questions

Related TF-003 practice-question pages

Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.

Practice this exam

Start a free TF-003 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 TF-003 question test?

Interact with Terraform modules — This question tests Interact with Terraform modules — Read the scenario before looking for a memorised answer..

What is the correct answer to this question?

The correct answer is: Terraform cached the previous module version and did not download the new one. — Option C is correct. Terraform caches modules locally; after changing the source ref, terraform init must be run to download the new version. If the user forgot to include the -upgrade flag or did not clean the cache, Terraform may use the cached version. Option A is not a standard command. Option B would cause an error. Option D (output changes) would not cause the plan to show old behavior if the module code is new.

What should I do if I get this TF-003 question wrong?

Identify which TF-003 exam domain this question belongs to, then review the specific concept being tested. Practise related questions in that domain and focus on understanding why each wrong answer is tempting — not just why the correct answer is right.

Are there clue words in this question I should notice?

Yes — watch for: "most likely". Probability qualifier — the question wants the most probable cause or outcome, not a guaranteed one. Eliminate low-probability options.

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 →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

4 more ways this is tested on TF-003

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. Which TWO statements about Terraform module sources are correct? (Select TWO.)

medium
  • A.A module source can be a local file system path.
  • B.Modules can only be sourced from the public Terraform Registry.
  • C.Running 'terraform plan' automatically downloads any missing modules.
  • D.A module source can be a Git repository URL using the SSH protocol.
  • E.The module source is defined in a separate 'source' block within the module.

Why A: Option A is correct because Terraform allows module sources to be local file system paths, enabling you to reference modules stored on your local machine. This is useful for developing and testing modules before publishing them, and the path can be relative or absolute, such as `./modules/my-module` or `/home/user/modules/my-module`.

Variation 2. The above configuration references a module from the Terraform Registry. After running 'terraform init', the user runs 'terraform plan' and gets an error: 'Error: Unsupported argument' for 'version'. What is the most likely cause?

medium
  • A.The 'version' argument is not supported for this module because the source is not a registry module.
  • B.The 'version' argument must be specified as a constraint like '>= 3.19.0' instead of an exact version.
  • C.The module source is from a Git repository, which does not support the 'version' argument.
  • D.The 'version' argument should be placed inside a 'required_providers' block.

Why A: The error 'Unsupported argument' for 'version' occurs because the module source is not from a Terraform Registry. The 'version' argument is only valid when the source is a registry module (e.g., 'hashicorp/consul/aws'). If the source is a local path, Git URL, or other non-registry source, Terraform does not support the 'version' argument, as versioning is managed by the registry's metadata.

Variation 3. After adding a new module sourced from a Git repository with a specific tag, terraform init reports that the module is being downloaded. What is the best practice to ensure the team uses the same version of this module consistently?

easy
  • A.Use a version constraint in the module block, e.g., version = 1.0.0.
  • B.Specify the source as the branch name 'main'.
  • C.Use the 'latest' tag in the source URL.
  • D.Use a Git tag, like '?ref=v1.0.0', to pin the version.

Why D: Option C is correct because using a specific Git tag ensures version control and reproducibility. Option A is wrong because 'latest' tag is not deterministic. Option B is wrong because branch names change over time. Option D is wrong although version constraints work with registries, not Git sources directly without metadata.

Variation 4. Based on the error, what is the most likely reason the 'acl' argument is not expected?

easy
  • A.The module version currently installed does not have an 'acl' variable.
  • B.The argument name is misspelled; it should be 'acl_control'.
  • C.The module requires the 'acl' to be set inside a separate block.
  • D.The 'bucket' argument is missing; 'acl' must follow it.

Why A: Option A is correct because the module version does not support the 'acl' argument; it may have been removed. Option B is wrong because typically the registry would show supported arguments. Option C is wrong because other arguments may still be valid. Option D is wrong because the error is about an unexpected argument, not missing required.

Last reviewed: Jun 24, 2026

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.

Loading comments…

Sign in to join the discussion.

This TF-003 practice question is part of Courseiva's free HashiCorp 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 TF-003 exam.