This is being raised from an apparently normal OOPS successfully serialized as bson. Probably indicates a bson bug, but will need a fixed version / fixed dependency in oops-datedir-repo.
>>> bson.loads(file('OOPS-3cbd11de34ca8a70afaf668853adc17e').read())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/__init__.py", line 75, in loads
return decode_document(data, 0)[1]
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 240, in decode_document
base, name, value = decode_element(data, base)
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 232, in decode_element
return decode_func(data, base)
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 253, in decode_document_element
base, value = decode_document(data, base)
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 240, in decode_document
base, name, value = decode_element(data, base)
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 232, in decode_element
return decode_func(data, base)
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 163, in decode_string_element
base, name = decode_cstring(data, base + 1)
File "/home/robertc/source/launchpad/oops-datedir-repo/working/eggs/bson-0.3.2-py2.6.egg/bson/codec.py", line 121, in decode_cstring
return (base + length, buf.getvalue().decode("utf8"))
File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x85 in position 5: unexpected code byte
according to the backtrace we have a unicode string which when serialized by the serializer cannot be deserialized.
(decode_element reads the type code then dispatches to decode_ string_ element. I'm a bit confused why decode_cstring is doing a utf8 decode..)