-<% percent_total_tasks = 100 / (j[:tasks_summary][:done] + j[:tasks_summary][:running] + j[:tasks_summary][:failed] + j[:tasks_summary][:todo]) rescue 0 %>
+<% failed = j[:tasks_summary][:failed] rescue 0 %>
+<% done = j[:tasks_summary][:done] rescue 0 %>
+<% running = j[:tasks_summary][:running] rescue 0 %>
+<% todo = j[:tasks_summary][:todo] rescue 0 %>
+
+<% if j[:success] == false and failed == 0 %>
+ <% failed = 1 # job failed, so show as though at least one task failed %>
+<% else %>
+
+<% if done + running + failed + todo == 0 %>
+ <% failed = 1 # no tasks ran; show as though one task ran and failed %>
+<% end %>
+
+<% percent_total_tasks = 100 / (done + running + failed + todo) %>
<% if defined? scaleby %>
<% percent_total_tasks *= scaleby %>
<div class="progress">
<% end %>
-<span class="progress-bar progress-bar-success" style="width: <%= j[:tasks_summary][:done] * percent_total_tasks rescue 0 %>%;">
+<span class="progress-bar progress-bar-success" style="width: <%= done * percent_total_tasks %>%;">
</span>
-<span class="progress-bar progress-bar-danger" style="width: <%= j[:tasks_summary][:failed] * percent_total_tasks rescue 0 %>%;">
+<span class="progress-bar progress-bar-danger" style="width: <%= failed * percent_total_tasks %>%;">
</span>
-<span class="progress-bar" style="width: <%= j[:tasks_summary][:running] * percent_total_tasks rescue 0 %>%;">
+<span class="progress-bar" style="width: <%= running * percent_total_tasks %>%;">
</span>
<% if not defined? scaleby %>