31f047492a
- Wrap groupFetchAllParticipating in try/catch to prevent unhandled rejection on connect - Catch errors from async onMessage/onGroups callbacks via Promise.resolve().catch - Return null from normalizer when key.id is missing (prevents empty upsert key collision) - Extract parseRedisUrl to redis-connection.ts to eliminate duplication Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>