This bug is a two parter. Part one involves an incomplete mirror of archive.ubuntu.com. Jason Hobbs has a writeup on properly mirroring the boot resources to fix that issue. The second part is about the error output itself. In this case, the OOPS and Tracebacks are pretty generic: 2014-11-30 08:54:31-0500 [-] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 423, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 577, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 135, in maybe_start_download yield self._start_download() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 121, in _start_download get_proxy_url("https")) 2014-11-30 08:54:31-0500 [-] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 423, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 577, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 135, in maybe_start_download yield self._start_download() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 121, in _start_download get_proxy_url("https")) File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker result = context.call(ctx, function, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 143, in wrapper return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 67, in _run_import boot_resources.import_images(sources) File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 268, in import_images install_boot_loaders(snapshot_path, image_descriptions.get_image_arches()) File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 102, in install_boot_loaders boot_method.install_bootloader(destination) File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/uefi.py", line 210, in install_bootloader 'Failed to download grubnetx64.efi.signed ' provisioningserver.boot.BootMethodInstallError: Failed to download grubnetx64.efi.signed from the archive. 2014-11-30 08:54:31-0500 [-] Logged OOPS id OOPS-d8279d891a042a7a22a82e17cdb3beba: BootMethodInstallError: Failed to download grubnetx64.efi.signed from the archive.2014-11-30 08:54:31-0500 [-] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 423, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 577, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 135, in maybe_start_download yield self._start_download() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 121, in _start_download get_proxy_url("https")) 2014-11-30 08:54:31-0500 [-] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 423, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 577, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 135, in maybe_start_download yield self._start_download() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 121, in _start_download get_proxy_url("https")) File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker result = context.call(ctx, function, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 143, in wrapper return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 67, in _run_import boot_resources.import_images(sources) File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 268, in import_images install_boot_loaders(snapshot_path, image_descriptions.get_image_arches()) File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 102, in install_boot_loaders boot_method.install_bootloader(destination) File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/uefi.py", line 210, in install_bootloader 'Failed to download grubnetx64.efi.signed ' provisioningserver.boot.BootMethodInstallError: Failed to download grubnetx64.efi.signed from the archive. 2014-11-30 08:54:31-0500 [-] Logged OOPS id OOPS-d8279d891a042a7a22a82e17cdb3beba: BootMethodInstallError: Failed to download grubnetx64.efi.signed from the archive.2014-11-30 08:54:31-0500 [-] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 423, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 577, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 135, in maybe_start_download yield self._start_download() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 121, in _start_download get_proxy_url("https")) 2014-11-30 08:54:31-0500 [-] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 423, in errback self._startRunCallbacks(fail) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 577, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", lin e 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 135, in maybe_start_download yield self._start_download() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1097, in _inlineCallbacks result = result.throwExceptionIntoGenerator(g) File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/usr/lib/python2.7/dist-packages/provisioningserver/pserv_services/image_download_service.py", line 121, in _start_download get_proxy_url("https")) File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker result = context.call(ctx, function, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 143, in wrapper return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 67, in _run_import boot_resources.import_images(sources) File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 268, in import_images install_boot_loaders(snapshot_path, image_descriptions.get_image_arches()) File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 102, in install_boot_loaders boot_method.install_bootloader(destination) File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/uefi.py", line 210, in install_bootloader 'Failed to download grubnetx64.efi.signed ' provisioningserver.boot.BootMethodInstallError: Failed to download grubnetx64.efi.signed from the archive. 2014-11-30 08:54:31-0500 [-] Logged OOPS id OOPS-d8279d891a042a7a22a82e17cdb3beba: BootMethodInstallError: Failed to download grubnetx64.efi.signed from the archive. Several weeks ago, I configured MAAS to use a local copy of archive.ubuntu.com and forgot I had done so. Had the error messaging told me exactly what URL it was trying to access when the failure occurred, I would have immediately been able to correct it. Instead, I spent a long while debugging before someone mentioned using a mirror which triggered the memory. Changing the archive url back to archive.ubuntu.com resolved the issue for me. So it would be helpful if this traceback instead created helpful messaging that at least gives a clue as to where maas is looking for boot images. When it said "from the archive" I initially assumed it was pulling something from maas.ubuntu.com/images, it never occurred to me that "from the archive" actually meant "from http://10.0.0.1/ubuntu" rather than "from http://archive.ubuntu.com/ubuntu"