Owning code appears in charlie-labs/charlie at commit d59be8962463f8768712cff0d20f57bc8b9ef6a1:
https://github.com/charlie-labs/charlie/commit/d59be8962463f8768712cff0d20f57bc8b9ef6a1
Sentry issue: https://charlie-labs.sentry.io/issues/7252094770/?environment=prod
What we're seeing
- Error:
Network connection lost
- Likely during
await env.eventsBucket.get(objectKey) (Cloudflare R2 read) in svc-event-consumer
- Volume: 48 events since 2026-02-09
- Impact: 1 user affected
- Status: still happening
Notes
- The
charlie-labs/charlie repo currently has GitHub Issues disabled, so this issue lives here for tracking.
Suggested remediation
- Add bounded retries around R2
get() with jittered exponential backoff (e.g. 3-5 attempts, cap total wait).
- Improve observability:
- Include
objectKey, bucket, attempt count, and request/trace IDs in logs/Sentry context.
- Differentiate not-found (
null) vs transport/network failures.
- Ensure queue semantics won't drop messages on transient failures; consider treating retry exhaustion as a distinct error type.
Acceptance ideas
- Simulated transient failure triggers retries and then succeeds without emitting an error.
- If retries exhaust, error includes key + attempt count and is easy to correlate in Sentry/logs.