views:

140

answers:

1

I'm posting this question (and answer) so if anybody else has this problem in the future, you'll be able to google it.

If you are trying to run celeryd in Django like so:

python manage.py celeryd

You can receive the following error immediately after it has started:

celery@eric-desktop-dev has started.
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  <... snip ...>
  File "/usr/local/lib/python2.6/dist-packages/amqplib-0.6.1-py2.6.egg/amqplib/client_0_8/connection.py", line 134, in __init__
    self._x_start_ok(d, login_method, login_response, locale)
  File "/usr/local/lib/python2.6/dist-packages/amqplib-0.6.1-py2.6.egg/amqplib/client_0_8/connection.py", line 704, in _x_start_ok
    args.write_longstr(response)
  File "/usr/local/lib/python2.6/dist-packages/amqplib-0.6.1-py2.6.egg/amqplib/client_0_8/serialization.py", line 352, in write_longstr
    self.write_long(len(s))
TypeError: object of type 'NoneType' has no len()

A rather cryptic error message, with no real clue as to where to go to fix the problem. See below for the answer so you don't waste a bunch of time on this error like I did today :)

A: 

You're missing a celery setting in settings.py. In my case it was caused by a typo (I missed an 'S' in BROKER_PASSWORD). Double check you included all the required settings and that each one is spelled everything correctly, and you'll avoid making as ass of yourself like I did today :)

Eric Palakovich Carr