ERROR: Traceback (most recent call last): File "/cue/TonePy_AWSLambda/toneEmbedder_flask/env/lib/python3.6/site-packages/kombu/serialization.py", line 50, in _reraise_errors yield File "/cue/TonePy_AWSLambda/toneEmbedder_flask/env/lib/python3.6/site-packages/kombu/serialization.py", line 221, in dumps payload = encoder(data) File "/cue/TonePy_AWSLambda/toneEmbedder_flask/env/lib/python3.6/site-packages/kombu/utils/json.py", line 69, in dumps **dict(default_kwargs, **kwargs)) File "/Users/pi/anaconda/lib/python3.6/json/__init__.py", line 238, in dumps **kw).encode(obj) File "/Users/pi/anaconda/lib/python3.6/json/encoder.py", line 199, in encode chunks = self.iterencode(o, _one_shot=True) File "/Users/pi/anaconda/lib/python3.6/json/encoder.py", line 257, in iterencode return _iterencode(o, 0) File "/cue/TonePy_AWSLambda/toneEmbedder_flask/env/lib/python3.6/site-packages/kombu/utils/json.py", line 59, in default return super(JSONEncoder, self).default(o) File "/Users/pi/anaconda/lib/python3.6/json/encoder.py", line 180, in default o.__class__.__name__) TypeError: Object of type 'Embed' is not JSON serializable # app.py @flaskApp.route('/embed-async', methods=['POST'] ) def embedtone_async_handler(): try: j = request.get_json(force=True) E = Embed.Embed(j) # Start Asyncronous tasks E.pipeline_async_start() # Send task to Celery worker tasks.embed_tone.delay(E) # <-- THIS IS CAUSING IT return jsonify( E.make_triggers() ) : #tasks.py from theApp import flaskApp from celery import Celery from celery.result import AsyncResult def make_celery(app): celery = Celery( app.import_name, backend=app.config['CELERY_RESULT_BACKEND'], broker=app.config['CELERY_BROKER_URL'] ) celery.conf.update(app.config) class ContextTask(celery.Task): def __call__(self, *args, **kwargs): with app.app_context(): return self.run(*args, **kwargs) celery.Task = ContextTask return celery celery = make_celery(flaskApp) def make_result(id, celery_app=celery): return AsyncResult(id, app=celery_app) @celery.task() # can specify timeouts: time_limit = 1000 def add_together(a, b): return a + b @celery.task() def embed_tone(embedObject): # TODO: If you want exceptions caught and stored as results, this is where to do it return embedObject.pipeline_async_finish()