FAQ & Troubleshooting¶
This section answers:
“Something broke — where do I look, and what do I fix?”
Application Not Starting¶
Django container exits immediately¶
Check logs: make django-logs
Common causes:
- Missing
.env - Wrong
DJANGO_SETTINGS_MODULE - Database not ready (prod)
Fix
- Verify:
DJANGO_SETTINGS_MODULE=digistore.settings.local
#or
DJANGO_SETTINGS_MODULE=digistore.settings.production
Migrations Not Applied¶
App runs but features are broken¶
Symptoms
- Admin pages fail
- Models not found
- Random 500 errors
Fix
Rule
- Always migrate inside Docker , never on host
Celery Tasks Not Running¶
Emails / backups / Telegram notifications not working¶
Checklist
- Check worker:
make celery-logs - Check Redis:
- Verify
.envREDIS_URL=redis://user:pass@redis:6379
Common mistake
- Redis running locally instead of Docker network
Payments Not Completing¶
User paid but product not unlocked¶
Checklist
- Check webhook logs
- Check
Order.is_paid - Check
PurchasedProductexists
Likely causes
- Webhook secret mismatch
- Webhook URL not reachable
- Dodo API outage
Fix
- Re-send webhook from Dodo dashboard
- Manually mark order succeeded in Django admin
Webhook Signature Invalid¶
Invalid Dodo webhook signature¶
Cause
- Wrong
DODO_WEBHOOK_SECRET - Test secret used in production
Fix
- Update
.env - Restart containers
Product Download Not Working¶
Download button does nothing¶
Checklist
- Verify ownership
- Check file exists in storage
- Check presigned URL generation
Dev mode
- File must exist locally
Prod mode
- Verify:
- Bucket name
- Access keys
- Object permissions
File Downloads Expire Too Fast¶
Users complain link expired¶
Expected behavior
- Presigned URLs expire in 10 minutes
Fix
- Increase expiry in S3 presign logic (not recommended)
- Educate users to click immediately
Seller Cannot Delete Product¶
Delete blocked¶
Reason
- Product has at least one purchase
Why
- Prevents data loss
- Prevents refund inconsistency
Correct action
- Disable product instead of deleting
Support Request Cannot Be Created¶
User sees “Support already active”¶
Reason
- Active support exists for that product
Statuses considered active
- new
- discussing
- payment_pending
- in_progress
Fix
- Complete or cancel existing support first
Short URL Not Redirecting¶
Short URL returns 404 / expired¶
Checklist
- Check expiry date
- Clear cache
- Verify slug exists
Fix
Under Construction Mode Not Working¶
Site not blocked¶
Checklist
- UnderConstruction row exists
is_under_construction=True- Cache TTL expired
Force refresh
Under Construction Bypass Not Working¶
Admin locked out¶
Correct usage
https://site.com/?uc=MAINTENANCE_BYPASS_KEY
Fix
- Ensure query param exactly matches
.env
Admin Panel Slow¶
Django admin very slow¶
Causes
- Large tables
- Missing indexes
- Heavy inlines
Fix
- Add DB indexes
- Limit admin list filters
- Use pagination
Analytics Dashboard Empty¶
Seller dashboard shows no charts¶
Checklist
- GA credentials present
- GA property ID correct
- API quota not exceeded
Fallback
- Dashboard still loads without analytics
Email Not Delivered¶
User didn’t receive email¶
Checklist
- Check Celery logs
- Check Resend dashboard
- Verify FROM_EMAIL
Common issue
- Email in spam
Docker Build Fails¶
Build fails during uv sync¶
Cause
- Python version mismatch
- Corrupt
uv.lock
Fix
Redis Auth Errors¶
NOAUTH Authentication required¶
Fix
- Ensure Redis config matches
.env - Restart Redis container
Database Backup Not Appearing¶
No backups in storage¶
Checklist
- Celery Beat running
- Storage credentials valid
- Disk space available
When Everything Breaks¶
Nuclear Debug Checklist¶
- Check logs
- Restart containers
- Verify
.env - Re-run migrations
- Check Redis
- Check Celery
- Check external services
Final Advice¶
- Logs are your first debugger
- Never bypass business rules
- Don’t disable signals casually
- Use admin for emergency recovery