Jennifer Pollack reported the following error:
This seemed strange because it fits into the declared 52 bits from https://github.com/lsst/obs_lsst/blob/master/python/lsst/obs/lsst/lsstCamMapper.py#L248
It turns out that the code that checks the size of the id, https://github.com/lsst/afw/blob/master/src/table/IdFactory.cc#L52-L60, is using an int64_t https://github.com/lsst/afw/blob/master/include/lsst/afw/table/misc.h#L22
As a result, any ids that actually extend into the 52nd bit trigger the error.
If converting to a uint64_t is actually as difficult as claimed in the comments because of FITS, that may unexpectedly constrain us in an area where we were already running out of bits.
In the meantime, it seems the best solution is to properly specify the maximum exposure id length as 63 bits in https://github.com/lsst/obs_base/blob/master/python/lsst/obs/base/exposureIdInfo.py#L58. It appears that no one attempts to override this in the obs packages.
I am not certain if the dimension packer in daf_butler is also implicated due to https://github.com/lsst/pipe_tasks/blob/master/python/lsst/pipe/tasks/characterizeImage.py#L338-L339