From upstream tracker:
A bucket reshard causes swift object expiry to fail. While further swift client requests will still return a 404 as we check for obj expiry times in GET requests, the object is never deleted on disk, and the delete hint is already trimmed as we assume a non-findeable bucket means the bucket was deleted
$ swift upload foobar foo -H "X-Delete-After: 100"
$ radosgw-admin bucket reshard foobar --num-shards 4
$ sleep 100 && radosgw-admin objects expire --debug-rgw=20
$ radosgw-admin object stat --bucket foobar --object foo # returns
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.