diff --git a/artiq/coredevice/comm_mgmt.py b/artiq/coredevice/comm_mgmt.py index 9833d7520..870e2759d 100644 --- a/artiq/coredevice/comm_mgmt.py +++ b/artiq/coredevice/comm_mgmt.py @@ -160,7 +160,12 @@ class CommMgmt: def config_read(self, key): self._write_header(Request.ConfigRead) self._write_string(key) - self._read_expect(Reply.ConfigData) + ty = self._read_header() + if ty == Reply.Error: + raise IOError("Device failed to read config. The key may not exist.") + elif ty != Reply.ConfigData: + raise IOError("Incorrect reply from device: {} (expected {})". + format(ty, Reply.ConfigData)) return self._read_string() def config_write(self, key, value):