Azure Container Instances OnFailure Restart Policy for Job Retries
A container group runs a one-time import job that writes data to an external system. If the job succeeds, the container must stop and stay stopped. If the job fails, it should automatically retry by restarting. Which restart policy should the administrator choose?
Quick Answer
The answer is OnFailure. This restart policy is correct because it instructs Azure Container Instances to restart the container only when the process exits with a non-zero exit code, indicating a failure, while leaving the container permanently stopped on a successful exit code of zero. For a one-time import job that must retry automatically on failure but never restart after success, OnFailure provides the exact behavior without unnecessary restarts. On the AZ-104 exam, this scenario tests your understanding of the three ACI restart policies—Always, Never, and OnFailure—and the common trap is confusing OnFailure with Always, which would restart even after success. A reliable memory tip is to think of OnFailure as “fail and retry, succeed and stay,” where a zero exit code means the job is done and the container rests.
⚠ Common exam trap
Test-takers frequently confuse 'OnFailure' with 'Always' for retry scenarios, not realizing that 'Always' restarts even after success, which would break the 'stop on success' requirement.
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
✓
OnFailure
The OnFailure restart policy is correct because it instructs Azure Container Instances (ACI) to restart the container only when the process exits with a non-zero exit code, indicating failure. For a one-time import job that must stop permanently on success (exit code 0) and retry on failure, OnFailure matches this exact behavior without unnecessary restarts.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Always
Why it's wrong here
Always restarts the container regardless of success or failure. That would cause a completed import job to start again even after successful completion, which is not the requirement.
When this WOULD be correct
For a long-running service like a web server or a background worker that must be kept running continuously, such as a container hosting an API that should restart after any crash or stop to maintain availability.
- ✗
Never
Why it's wrong here
Never prevents any restart behavior. That means a failed job would not retry automatically, which conflicts with the requirement to restart on failure.
When this WOULD be correct
If the question stated that the container should run exactly once and never be restarted under any circumstances (e.g., a data export that must not duplicate records), then 'Never' would be correct.
- ✓
OnFailure
Why this is correct
OnFailure matches a batch-style workload that should retry after an error but remain stopped after a successful run. It allows the container group to restart when the process exits unsuccessfully while avoiding unnecessary reruns after completion.
- ✗
Manual
Why it's wrong here
Manual is not the standard ACI restart policy for an unattended job. It would leave the workload dependent on operator action instead of automatically retrying on failure.
When this WOULD be correct
In a scenario where a container group runs a batch job that must be manually monitored and restarted by an administrator after failure, and the environment does not support automatic restart policies, a 'Manual' policy would be correct. For example, in a custom orchestration system where the container is expected to exit and be restarted only via external triggers.
Option-by-option analysis
Why each answer is right or wrong
Understanding why wrong answers are wrong — and when they would be correct — is what separates a 750 score from a 900. The AZ-104 exam frequently reuses these exact scenarios with slightly different constraints.
✓OnFailureCorrect answer▾
Why this is correct
OnFailure matches a batch-style workload that should retry after an error but remain stopped after a successful run. It allows the container group to restart when the process exits unsuccessfully while avoiding unnecessary reruns after completion.
✗AlwaysWrong answer — click to see why▾
Why this is wrong here
The 'Always' policy restarts the container regardless of exit code, so even after a successful job completion, the container would restart, preventing it from staying stopped as required.
★ When this WOULD be the correct answer
For a long-running service like a web server or a background worker that must be kept running continuously, such as a container hosting an API that should restart after any crash or stop to maintain availability.
Why candidates choose this
Candidates may confuse a one-time job with a service that needs high availability, assuming that any stop is a failure and should be restarted, overlooking the requirement to stop on success.
✗NeverWrong answer — click to see why▾
Why this is wrong here
The 'Never' restart policy means the container will never be restarted, even if the job fails. Since the requirement is to automatically retry on failure, 'Never' does not satisfy the retry condition.
★ When this WOULD be the correct answer
If the question stated that the container should run exactly once and never be restarted under any circumstances (e.g., a data export that must not duplicate records), then 'Never' would be correct.
Why candidates choose this
Candidates might think 'Never' is appropriate because the container should stop after success, but they overlook the need for automatic retry on failure.
✗ManualWrong answer — click to see why▾
Why this is wrong here
The 'Manual' restart policy is not a valid option for Azure Container Instances; the available policies are Always, Never, and OnFailure. Therefore, it cannot be selected for any restart behavior.
★ When this WOULD be the correct answer
In a scenario where a container group runs a batch job that must be manually monitored and restarted by an administrator after failure, and the environment does not support automatic restart policies, a 'Manual' policy would be correct. For example, in a custom orchestration system where the container is expected to exit and be restarted only via external triggers.
Why candidates choose this
Candidates may mistakenly think 'Manual' is a valid Azure Container Instances restart policy, confusing it with other Azure services like Azure Container Apps or Docker Compose where manual restart is an option.
Analysis generated from the official AZ-104blueprint and verified against question context. The “when correct” sections are what AI assistants cite when candidates ask “what’s the difference between these options?”
Go deeper
Related to this question
Learn chapter
Managed Identities for Azure Resources
Key term
Policy
A policy is a set of rules or guidelines that defines how an organization manages, secures, and operates its IT systems and services.
Key term
Group
A group is a collection of users, devices, or other objects that are assigned permissions and policies together for simplified management in identity and governance systems like Microsoft Entra ID.
About these practice questions
This AZ-104 question is part of Courseiva's 1,049-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
Same concept, more angles
1 more way this is tested on AZ-104
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. A container group runs a one-time import task and should stop after the task completes successfully. Which restart policy should you use?
easy- A.Always
- B.OnFailure
- ✓ C.Never
- D.Manual
Why C: The 'Never' restart policy is correct because the container group is designed to run a one-time import task and should stop after successful completion. In Azure Container Instances (ACI), the 'Never' policy ensures the container runs exactly once and does not restart, regardless of the exit code. This is ideal for batch jobs or import tasks that should not be retried automatically.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This AZ-104 practice question is part of Courseiva's free Microsoft 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 AZ-104 exam.