harden startup: ipv4 redis default, zero ready flag, await reset#58
harden startup: ipv4 redis default, zero ready flag, await reset#58wanwiset25 merged 1 commit intomasterfrom
Conversation
wanwiset25
commented
Apr 24, 2026
- Pin Redis host to 127.0.0.1 in server.ts and base.ts with REDIS_HOST/REDIS_PORT overrides. Fixes ECONNREFUSED on ::1 when Node resolves localhost as IPv6 against an IPv4-only redis bind.
- Await Promise.all over per-mode resets in processors.reset() so per-branch failures propagate to the bootstrap retry loop instead of becoming unhandled rejections.
- Add a ready flag to Zero and ReverseZero: flip true only after zeroService.init() resolves; short-circuit processEvent() with a skip message until ready. Prevents TypeErrors when Bull fires jobs before viem clients are constructed. Log string also goes from "Fail to init" to "Failed to init".
- Wrap processors.init(serverAdapter) in try/catch with explicit logger.error + process.exit(1). Sync init throws no longer leak as unhandled rejections; bootstrap's async retry loop still runs on success.
- Pin Redis host to 127.0.0.1 in server.ts and base.ts with REDIS_HOST/REDIS_PORT overrides. Fixes ECONNREFUSED on ::1 when Node resolves localhost as IPv6 against an IPv4-only redis bind. - Await Promise.all over per-mode resets in processors.reset() so per-branch failures propagate to the bootstrap retry loop instead of becoming unhandled rejections. - Add a ready flag to Zero and ReverseZero: flip true only after zeroService.init() resolves; short-circuit processEvent() with a skip message until ready. Prevents TypeErrors when Bull fires jobs before viem clients are constructed. Log string also goes from "Fail to init" to "Failed to init". - Wrap processors.init(serverAdapter) in try/catch with explicit logger.error + process.exit(1). Sync init throws no longer leak as unhandled rejections; bootstrap's async retry loop still runs on success.
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 18 minutes and 15 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |