Does the chain from calling store_billable end up saving the msg anywhere?  If so I think there might be a doc update conflict because this msg.save() call happens after the object (and its revision) is copied and sent to celery. To be safe we might just want to make sure that store billable gets called after saving.