learningequality / learningequality/studio
Celery starts even when Redis is unavailable, leading to confusing retry loop
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 191
- Forks
- 307
- Avg merge
- 5d 6h
- Merged PRs (30d)
- 10
Description
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Hi! While setting up Kolibri Studio locally on macOS, I noticed a runtime behavior that might be confusing for contributors and potentially brittle in dev environments.
When running make run-services, Celery starts successfully even if the Redis container fails to start (e.g., due to Docker credential issues). Celery then enters an infinite retry loop with errors like:
Cannot connect to redis://localhost:6379/0: Connection refused
One of the following could make this clearer and easier to diagnose:
Fail fast on startup if Redis is unreachable, with a clear error explaining that Redis must be running before starting Celery.
Preflight dependency check (e.g., ping Redis once before worker startup) and exit with a helpful message if it fails.
Single explicit error log that distinguishes “Redis not running” from general Celery connectivity errors, instead of entering a long retry loop.
I’d be happy to work on a small, targeted change in this area (e.g., an early connectivity check or clearer startup error) if this aligns with the project’s direction.
Thanks!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file or test is named. Start by reproducing the behavior with make run-services while Redis is unavailable, then trace the Celery startup entry point and its Redis connection handling. Done requires an agreed startup behavior and a clear diagnostic when Redis cannot be reached.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python, redis
- Domain
- backend, devops
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100