Getting ValueError on all certbot commands


#1

Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. https://crt.sh/?q=example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is: onlineworldnews24.com

I ran this command: certbot renew --no-self-upgrade --post-hook=“service nginx reload”

It produced this output:

Traceback (most recent call last):
File “/usr/bin/certbot”, line 11, in
load_entry_point(‘certbot==0.21.1’, ‘console_scripts’, ‘certbot’)()
File “/usr/local/lib/python3.4/dist-packages/pkg_resources/init.py”, line 572, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)


File “/usr/local/lib/python3.4/dist-packages/pkg_resources/init.py”, line 2755, in load_entry_point
return ep.load()
File “/usr/local/lib/python3.4/dist-packages/pkg_resources/init.py”, line 2408, in load
return self.resolve()
File “/usr/local/lib/python3.4/dist-packages/pkg_resources/init.py”, line 2414, in resolve
module = import(self.module_name, fromlist=[‘name’], level=0)
File “/usr/lib/python3/dist-packages/certbot/main.py”, line 17, in
from certbot import account
File “/usr/lib/python3/dist-packages/certbot/account.py”, line 122, in
class RegistrationResourceWithNewAuthzrURI(messages.RegistrationResource):
File “/usr/local/lib/python3.4/dist-packages/acme/jose/json_util.py”, line 181, in new
return abc.ABCMeta.new(mcs, name, bases, dikt)
File “/usr/lib/python3.4/abc.py”, line 133, in new
cls = super().new(mcls, name, bases, namespace)
ValueError: ‘new_authzr_uri’ in slots conflicts with class variable

My web server is (include version): nginx version: nginx/1.4.6 (Ubuntu)

The operating system my web server runs on is (include version): Ubuntu 14.04.5 LTS

My hosting provider, if applicable, is: Digital Ocean

I can login to a root shell on my machine (yes or no, or I don’t know): yes

I’m using a control panel to manage my site (no, or provide the name and version of the control panel): no


#2

Did you install certbot from the PPA? Or some other way?

If you installed it from the PPA, which versions of the relevant packages do you have?

dpkg-query --show python3-certbot python3.4 python3-josepy

Does this issue reproduce when you try to issue, or only on renewal?

sudo certbot certonly --staging --webroot -w $(mktemp -d) -d somethingobviouslyfake.info

You’ll get an issuance error there because the domain is fake, but I’m just curious if the Python error reproduces that way. I couldn’t reproduce this on issuance with Ubuntu 14.04, but I can’t test certbot renew very easily in a Docker container. If you only get this error on renew I will try harder. :slight_smile:


#3

Yes, I did install with PPA. Here are the packages listed from the dpkg-query command you put in:

python3-certbot 0.21.1-1+ubuntu14.04.1+certbot+0.2
python3-josepy 1.0.1-1+ubuntu14.04.1+certbot+7
python3.4 3.4.3-1ubuntu1~14.04.6

As for reproducing this with other commands, it appears to throw this error on all commands, not just renew. In fact, if I just enter
certbot
, it still gives the error.


#4

Try reinstalling python3-josepy:

sudo apt install --reinstall python3-josepy

There is a mismatch between the line numbers in your error and the code on my fresh Ubuntu install, which suggests a different version of python3-josepy might have been installed outside apt (perhaps with pip) and it isn’t working right.

If the error persists, please share the most recent error so I can see if the line numbers have changed. Thanks!


#5

There are definitely multiple installs. The PPA doesn’t put things in /usr/local.

I don’t know if that explains the error, but it’s definitely not good…

Edit: I’m not saying it’s bad to have a version of pkg_resourses in /usr/local though. That’s just a side point of interest.


#6

Thanks Matt, that seems to have done it. I think the previous version of python may have been installed when I installed certbot initially in the previous version before it was a PPA install. I believe it was certbot-auto then, although it may have been some other package along the way.

Once I removed the /usr/local version of python, it worked.


#7

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.