code: def parse_error(res):
      
      try:
          body = res.json()
      except JSONDecodeError:
          raise UnknownApiError(res.text)
  
      if 'error_type' not in body:
          raise UnknownApiError(str(body))
  
      error_type = body['error_type']
      status = body['status']
  
      if re.search(r"[0-9]+ qubits were requested, but the QVM is limited to [0-9]+ qubits.", status):
          return TooManyQubitsError(status)
  
      error_cls = error_mapping.get(error_type, UnknownApiError)
      return error_cls(status)
docs: Every server error should contain a "status" field with a human readable explanation of
      what went wrong as well as a "error_type" field indicating the kind of error that can be mapped
      to a Python type.
  
      There's a fallback error UnknownError for other types of exceptions (network issues, api
      gateway problems, etc.)