While chasing another issue, I observed these errors below in the maas log for one of the X3650 that's failing to deploy. I think it's worth investigating why maas is complaining about this server: 2015-08-05 15:42:33 [-] 127.0.0.1 - - [05/Aug/2015:15:42:32 +0000] "GET /MAAS/api/1.0/nodes/?agent_name=ed388ed1-b62c-4489-85c2-47dfe387d63b&id=node-08d6458c-3f4d-11e4-b38a-00163eca07b6&op=list HTTP/1.1" 200 795 "-" "Go 1.1 package http" 2015-08-05 15:42:33 [maasserver] ERROR: Unable to determine purpose for node: 'drapion.oil' 2015-08-05 15:42:33 [-] Unhandled failure dispatching AMP command. This is probably a bug. Please ensure that this error is handled within application code or declared in the signature of the RequestNodeInfoByMACAddress command. [maas-trusty-back-may22:pid=53399:cmd=RequestNodeInfoByMACAddress:ask=2b8c4] Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 783, in __bootstrap self.__bootstrap_inner() File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) --- --- 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 154, in wrapper return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 404, in call_within_transaction return func_outside_txn(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 300, in retrier return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 339, in inner return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/rpc/nodes.py", line 194, in request_node_info_by_mac_address return (node, node.get_boot_purpose()) File "/usr/lib/python2.7/dist-packages/maasserver/models/node.py", line 1856, in get_boot_purpose preseed_type = get_deploying_preseed_type_for(self) File "/usr/lib/python2.7/dist-packages/maasserver/preseed.py", line 379, in get_deploying_preseed_type_for purpose = get_available_purpose_for_node(purpose_order, node) File "/usr/lib/python2.7/dist-packages/maasserver/preseed.py", line 348, in get_available_purpose_for_node "Unable to determine purpose for node: '%s'", node.fqdn) maasserver.exceptions.PreseedError: (u"Unable to determine purpose for node: '%s'", u'drapion.oil') 2015-08-05 15:42:33 [maasserver] ERROR: Unable to determine purpose for node: 'drapion.oil' 2015-08-05 15:42:33 [-] Unhandled failure dispatching AMP command. This is probably a bug. Please ensure that this error is handled within application code or declared in the signature of the RequestNodeInfoByMACAddress command. [maas-trusty-back-may22:pid=53396:cmd=RequestNodeInfoByMACAddress:ask=2b9d0] Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 783, in __bootstrap self.__bootstrap_inner() File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) --- --- 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 154, in wrapper return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 404, in call_within_transaction return func_outside_txn(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 300, in retrier return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 339, in inner return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/maasserver/rpc/nodes.py", line 194, in request_node_info_by_mac_address return (node, node.get_boot_purpose()) File "/usr/lib/python2.7/dist-packages/maasserver/models/node.py", line 1856, in get_boot_purpose preseed_type = get_deploying_preseed_type_for(self) File "/usr/lib/python2.7/dist-packages/maasserver/preseed.py", line 379, in get_deploying_preseed_type_for purpose = get_available_purpose_for_node(purpose_order, node) File "/usr/lib/python2.7/dist-packages/maasserver/preseed.py", line 348, in get_available_purpose_for_node "Unable to determine purpose for node: '%s'", node.fqdn) maasserver.exceptions.PreseedError: (u"Unable to determine purpose for node: '%s'", u'drapion.oil')