Getting ValueError on all certbot commands

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., so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is:

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/”, 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/”, line 2755, in load_entry_point
return ep.load()
File “/usr/local/lib/python3.4/dist-packages/pkg_resources/”, line 2408, in load
return self.resolve()
File “/usr/local/lib/python3.4/dist-packages/pkg_resources/”, line 2414, in resolve
module = import(self.module_name, fromlist=[‘name’], level=0)
File “/usr/lib/python3/dist-packages/certbot/”, line 17, in
from certbot import account
File “/usr/lib/python3/dist-packages/certbot/”, line 122, in
class RegistrationResourceWithNewAuthzrURI(messages.RegistrationResource):
File “/usr/local/lib/python3.4/dist-packages/acme/jose/”, line 181, in new
return, name, bases, dikt)
File “/usr/lib/python3.4/”, 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

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

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:

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
, it still gives the error.

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!

1 Like

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.

1 Like

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.

1 Like

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