title: Python Celery : ValueError: too many values to unpack (expected 3)
body: <p>I'm trying to publish a message to Celery via RabbitMQ using the python library <a href="https://github.com/pika/pika" rel="nofollow noreferrer">Pika</a></p>
  
  <p>The message hits RabbitMQ but blows up when Celery handles it. I have no issues when I implement the same concept using .Net or Php, but I just can't seem to get it to work using python.</p>
  
  <p><strong>Connect to RabbitMQ</strong></p>
  
  <pre><code> connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
   channel = connection.channel()
  </code></pre>
  
  <p><strong>Publishing a message:</strong></p>
  
  <pre><code>def sendMsg():
      #generate a unique ID
      rd = random.Random()
      rd.seed(0)
      id = uuid.UUID(int=rd.getrandbits(128))
      msg = '{"msg":"What if i fall? but son, what if you fly"}'
      hrds = {'task': 'task.hello', 'id':str(id)}
      properties = pika.BasicProperties(content_type='application/json',headers= hrds)
      channel.basic_publish(exchange='celery',routing_key='celery',body=msg,properties=properties)
  </code></pre>
  
  <p><strong>Celery task handler</strong></p>
  
  <pre><code>@app.task
  def hello(msg):
     print("Your msg is: "+msg)
  </code></pre>
  
  <p><strong>Celery Error:</strong></p>
  
  <pre><code>    [2018-09-14 06:44:01,091: ERROR/MainProcess] Pool callback raised exception: ValueError('too many values to unpack (expected 3)',)
  Traceback (most recent call last):
    File "/home/devops/Documents/celery/workers/lib/python3.6/site-packages/kombu/utils/objects.py", line 42, in __get__
      return obj.__dict__[self.__name__]
  KeyError: 'chord'
  
  During handling of the above exception, another exception occurred:
  
  &gt; Traceback (most recent call last):   File
  &gt; "/home/devops/Documents/celery/workers/lib/python3.6/site-packages/billiard/pool.py",
  &gt; line 1747, in safe_apply_callback
  &gt;     fun(*args, **kwargs)   File "/home/devops/Documents/celery/workers/lib/python3.6/site-packages/celery/worker/request.py",
  &gt; line 366, in on_failure
  &gt;     self.id, exc, request=self, store_result=self.store_errors,   File "/home/devops/Documents/celery/workers/lib/python3.6/site-packages/celery/backends/base.py",
  &gt; line 157, in mark_as_failure
  &gt;     if request.chord:   File "/home/devops/Documents/celery/workers/lib/python3.6/site-packages/kombu/utils/objects.py",
  &gt; line 44, in __get__
  &gt;     value = obj.__dict__[self.__name__] = self.__get(obj)   File "/home/devops/Documents/celery/workers/lib/python3.6/site-packages/celery/worker/request.py",
  &gt; line 485, in chord
  &gt;     _, _, embed = self._payload ValueError: too many values to unpack (expected 3)
  </code></pre>
  
  <blockquote>
    <p>Environment: Linux, Python: 3.6.5,  Pika: 0.12.0</p>
  </blockquote>