Celery - collision of task_ids
It shouldn't be possible and even if, it should be very rare. My guess would be that the same task is executed a second time after your exception. Maybe there is a problem with your routing keys as the worker doesn't get the task? Or the broker has a problem, I've seen funny problems with RabbitMQ. Deleting it's database (RABBITMQ_MNESIA_BASE) helped in my case.
I'm getting HardTimeLimit exception for my tasks. After log examination i found - 

task is not being received by celery ( No "Got task from broker:" message for task id) 
task with the same id was executed couple a days ago.

Task ids are assigned automatically by @task decorator, tasks are started by django, there are ~2k tasks per day ( and ~30 collisions per day). 
How ID's collision is possible? How to prevent it.