Status changed to 'Confirmed' because the bug affects multiple users.

** Changed in: software-properties (Ubuntu)
       Status: New => Confirmed

You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to software-properties in

  Real connectivity error is hidden from a user when PPA is added:
  ERROR: '~anonymous' user or team does not exist.

Status in software-properties package in Ubuntu:

Bug description:
  This is common in an environment where a proxy server is not properly
  configured via HTTP_PROXY or HTTPS_PROXY and you need to add a PPA.

  The error is very cryptic unless you look at the code:

  sudo add-apt-repository ppa:anonymous/very-important-packages
  Cannot add PPA: 'ppa:~anonymous/ubuntu/very-important-packages'.
  ERROR: '~anonymous' user or team does not exist.

  Code path:

  def _get_suggested_ppa_message(user, ppa_name):
          msg = []
                  lp_user = get_info_from_lp(LAUNCHPAD_USER_API % user)
              except PPAException:
                  return _("ERROR: '{user}' user or team does not 
exist.").format(user=user) # <--- this is triggered
  def get_info_from_lp(lp_url):
      if NEED_PYCURL:
          # python2 has no cert verification so we need pycurl
          return _get_https_content_pycurl(lp_url)
          # python3 has cert verification so we can use the buildin urllib
          return _get_https_content_py3(lp_url)


  def _get_https_content_pycurl(lp_url):
      # this is the fallback code for python2
          callback = CurlCallback()
          curl = pycurl.Curl()
          curl.setopt(pycurl.SSL_VERIFYPEER, 1)
          curl.setopt(pycurl.SSL_VERIFYHOST, 2)
          curl.setopt(pycurl.WRITEFUNCTION, callback.body_callback)
          if LAUNCHPAD_PPA_CERT:
              curl.setopt(pycurl.CAINFO, LAUNCHPAD_PPA_CERT)
          curl.setopt(pycurl.URL, str(lp_url))
          curl.setopt(pycurl.HTTPHEADER, ["Accept: application/json"])
          json_data = callback.contents
      except pycurl.error as e: # <--- if this errors out due to connectivity
          raise PPAException("Error reading %s: %s" % (lp_url, e), e)
      return json.loads(json_data)

To manage notifications about this bug go to:

Mailing list:
Post to     :
Unsubscribe :
More help   :

Reply via email to