learningequality / learningequality/studio

Celery starts even when Redis is unavailable, leading to confusing retry loop

Open
#5,663 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.