 					return unless newVal?
 					scope.loadCount = 0; # new pdf, so reset load count
 					scope.loadSuccess = false
-					ctrl.load()
-					# trigger a redraw
-					scope.scale = angular.copy (scope.scale)
+					ctrl.load().then () ->
+						# trigger a redraw
+						scope.scale = angular.copy (scope.scale)
+					.catch (error) ->
+						scope.$emit 'pdf:error', error
 
 				scope.$watch 'scale', (newVal, oldVal) ->
 					# no need to set scale when initialising, done in pdfSrc

								scope.loadSuccess = true
						.catch (error) ->
							scope.$emit 'pdf:error', error
							return $q.reject(error)

				elementTimer = null
				spinnerTimer = null

						scope.$emit 'pdf:error:display'
						return
					if scope.loadSuccess
						ctrl.load().then () ->
							# trigger a redraw
							scope.scale = angular.copy (scope.scale)
						.catch (error) ->
							scope.$emit 'pdf:error:display'
					else
						scope.$emit 'pdf:error:display'
						return
