/// <summary> /// The build is determined to be missing. Finish the build according to that. /// </summary> internal async Task <bool> PopulateMissing(BuildStateEntity entity, BuildTablePopulator populator, CancellationToken cancellationToken) { try { await populator.PopulateBuildMissing(entity.BoundBuildId); entity.IsBuildFinished = true; entity.IsDataComplete = true; entity.Error = "Build missing"; await _buildStateTable.ExecuteAsync(TableOperation.InsertOrReplace(entity), cancellationToken); return(true); } catch (Exception ex) { // This is frankly the best possible outcome. This is the worst state we can have for a build // so any other thread giving a result can't be worse. _logger.WriteLine($"Error populating build {entity.BuildId} as missing {ex}"); return(false); } }