diff --git a/awx/ui/client/src/job-results/job-results-stdout/job-results-stdout.partial.html b/awx/ui/client/src/job-results/job-results-stdout/job-results-stdout.partial.html
index c283d578f7..88ee156a4e 100644
--- a/awx/ui/client/src/job-results/job-results-stdout/job-results-stdout.partial.html
+++ b/awx/ui/client/src/job-results/job-results-stdout/job-results-stdout.partial.html
@@ -35,7 +35,7 @@
+ ng-show="tooManyEvents || tooManyPastEvents || showLegacyJobErrorMessage">
@@ -43,6 +43,8 @@
ng-show="tooManyEvents">The standard output is too large to display. Please specify additional filters to narrow the standard out.
Too much previous output to display. Showing running standard output.
+ Job details are not available for this job. Please download to view standard out.
diff --git a/awx/ui/client/src/job-results/job-results.controller.js b/awx/ui/client/src/job-results/job-results.controller.js
index 7cef7c342f..582c4f3988 100644
--- a/awx/ui/client/src/job-results/job-results.controller.js
+++ b/awx/ui/client/src/job-results/job-results.controller.js
@@ -437,6 +437,18 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy
$scope.playCount = 0;
$scope.taskCount = 0;
+
+ // used to show a message to just download for old jobs
+ // remove in 3.2.0
+ $scope.isOld = 0;
+ $scope.showLegacyJobErrorMessage = false;
+
+ toDestroy.push($scope.$watch('isOld', function (val) {
+ if (val >= 2) {
+ $scope.showLegacyJobErrorMessage = true;
+ }
+ }));
+
// get header and recap lines
var skeletonPlayCount = 0;
var skeletonTaskCount = 0;
@@ -444,6 +456,9 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy
jobResultsService.getEvents(url)
.then(events => {
events.results.forEach(event => {
+ if (event.start_line === 0 && event.end_line === 0) {
+ $scope.isOld++;
+ }
// get the name in the same format as the data
// coming over the websocket
event.event_name = event.event;