It appears butler.job doesn't work for submitting background jobs at the myApp level. This is because butler submits the job without a namespace, so the broker/celery ends up calling apply in tasks.py which calls getattr on App instead of myApp (it seems like normally the only thing that should be calling this is the frontend api)... is this a bug or a design choice, and if the latter is it documented?