multiformats
multiformats copied to clipboard
MultibaseValueError: Raw encoding with name 'base32' already exists
Hi! About a week ago, I started seeing a trickle of these exceptions in my app that uses multiformats. I've been on multiformats==0.3.1.post4 multiformats-config==0.3.1 for months, and I can't think of any obvious recent change in my own code related to CID decoding. Any idea what's going on here?
My app is threaded; could it be a race condition registering encodings?
Thanks in advance!
Traceback (most recent call last):
File ".../flask_sock/__init__.py", line 62, in websocket_route
f(ws, *args, **kwargs)
File ".../lexrpc/flask_server.py", line 147, in handler
for result in iter:
...
File ".../arroba/xrpc_sync.py", line 148, in subscribe_repos
for commit_data in server.storage.read_commits_by_seq(start=cursor):
File ".../arroba/storage.py", line 205, in read_commits_by_seq
for block in self.read_blocks_by_seq(start=start):
File ".../arroba/datastore_storage.py", line 439, in read_blocks_by_seq
yield atp_block.to_block()
^^^^^^^^^^^^^^^^^^^^
File ".../arroba/datastore_storage.py", line 187, in to_block
return Block(cid=self.cid, encoded=self.encoded, seq=self.seq, ops=ops)
^^^^^^^^
File ".../arroba/datastore_storage.py", line 149, in cid
return CID.decode(self.key.id())
^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../multiformats/cid/__init__.py", line 562, in decode
cid, mb = _binary_cid_from_str(cid)
^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../multiformats/cid/__init__.py", line 46, in _binary_cid_from_str
mb, b = multibase.decode_raw(cid)
^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../multiformats/multibase/__init__.py", line 554, in decode_raw
return base, base.decode(s)
^^^^^^^^^^^^^^
File ".../multiformats/multibase/__init__.py", line 262, in decode
return self.raw_decoder(s[1:])
^^^^^^^^^^^^^^^^
File ".../multiformats/multibase/__init__.py", line 217, in raw_decoder
enc = raw.get(self.name)
^^^^^^^^^^^^^^^^^^
File ".../multiformats/multibase/raw.py", line 118, in get
if not _jit_register_encoding(name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../multiformats/multibase/raw.py", line 385, in _jit_register_encoding
f(*args)
File ".../multiformats/multibase/raw.py", line 353, in _jit_register_base_encoding
register(key, base)
File ".../multiformats/multibase/raw.py", line 167, in register
raise MultibaseValueError(f"Raw encoding with name {repr(name)} already exists: {_raw_encodings[name]}")
multiformats.multibase.err.MultibaseValueError: Raw encoding with name 'base32' already exists: FixcharBaseEncoding(StringAlphabet('abcdefghijklmnopqrstuvwxyz234567', case_sensitive=False), pad_char='=')