Frank: on the tahoe-dev mailing list (https://tahoe-lafs.org/pipermail/tahoe-dev/2013-August/008664.html), you posted this stack trace: allmydata.test.test_client Basic test_create_drop_uploader ... Traceback (most recent call last): File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/mock-1.0.1-py2.7.egg/mock.py", line 1201, in patched return func(*args, **keywargs) File "/Users/Frank/allmydata-tahoe-1.10.0/src/allmydata/test/test_client.py", line 235, in test_create_drop_uploader self.failUnlessRaises(MissingConfigEntry, client.Client, basedir1) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/trial/_synctest.py", line 335, in assertRaises failure.Failure().getTraceback())) twisted.trial.unittest.FailTest: raised instead of MissingConfigEntry: Traceback (most recent call last): File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/internet/defer.py", line 137, in maybeDeferred result = f(*args, **kw) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/internet/_utilspy3.py", line 37, in runWithWarningsSuppressed result = f(*a, **kw) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/mock-1.0.1-py2.7.egg/mock.py", line 1201, in patched return func(*args, **keywargs) File "/Users/Frank/allmydata-tahoe-1.10.0/src/allmydata/test/test_client.py", line 235, in test_create_drop_uploader self.failUnlessRaises(MissingConfigEntry, client.Client, basedir1) --- --- File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/trial/_synctest.py", line 328, in assertRaises result = f(*args, **kwargs) File "/Users/Frank/allmydata-tahoe-1.10.0/src/allmydata/client.py", line 130, in __init__ node.Node.__init__(self, basedir) File "/Users/Frank/allmydata-tahoe-1.10.0/src/allmydata/node.py", line 82, in __init__ self.create_tub() File "/Users/Frank/allmydata-tahoe-1.10.0/src/allmydata/node.py", line 174, in create_tub self.tub = Tub(certFile=certfile) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/foolscap-0.6.4-py2.7.egg/foolscap/pb.py", line 240, in __init__ self.setupEncryptionFile(certFile) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/foolscap-0.6.4-py2.7.egg/foolscap/pb.py", line 252, in setupEncryptionFile self.setupEncryption(certData) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/foolscap-0.6.4-py2.7.egg/foolscap/pb.py", line 267, in setupEncryption cert = self.createCertificate() File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/foolscap-0.6.4-py2.7.egg/foolscap/pb.py", line 476, in createCertificate 132) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/internet/_sslverify.py", line 577, in signCertificateRequest hlreq = CertificateRequest.load(requestData, requestFormat) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/internet/_sslverify.py", line 348, in load dn._copyFrom(req.get_subject()) File "/Users/Frank/allmydata-tahoe-1.10.0/support/lib/python2.7/site-packages/Twisted-13.0.0-py2.7-macosx-10.5-i386.egg/twisted/internet/_sslverify.py", line 101, in _copyFrom value = getattr(x509name, name, None) exceptions.UnicodeDecodeError: 'utf8' codec can't decode byte 0xfd in position 0: invalid start byte Here is a view of (I think) the Twisted-13.0.0 source code: https://github.com/twisted/twisted/blob/releases/release-13.0.0-6353/twisted/internet/_sslverify.py So, _sslverify.py line 101 is ... Huh, that's weird: why does it try to use 'utf8' to decode a bytestring? What about "value = getattr(x509name, name, None)" causes a bytestring to get decoded into a unicode object, and why does it attempt to do so using utf8 instead of the default codec of 'ascii'?