Duplicate /track requests return plain text 'Duplicate event', SDK throws JSON parse error
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 76/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Bắt đầu với packages/core/src/modules/ingest/ingest.routes.ts và kiểm tra cách phản hồi trùng lặp của /track được tạo; sau đó kiểm tra cách web SDK phân tích phần thân phản hồi không rỗng. Tái hiện bằng cách gửi cùng một sự kiện hai lần trong khoảng thời gian khử trùng lặp. Hoàn tất khi SDK có thể phân tích các phản hồi trùng lặp mà không thử lại hoặc gây lỗi trong console.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happens
When the ingest dedupe lock catches a duplicate request, /track answers 200 with the plain-text body Duplicate event (DUPLICATE_BODY in packages/core/src/modules/ingest/ingest.routes.ts).
The web SDK (@openpanel/sdk 1.3.1) reads every non-empty response body with JSON.parse:
const n = await i.text(); return n ? JSON.parse(n) : null
So a duplicate request throws SyntaxError: JSON Parse error: Unexpected identifier "Duplicate", the SDK retries and finally logs Max retries reached: SyntaxError: ... to the browser console. Sites that monitor console errors see this as a real-user JavaScript error.
Expected
A response the SDK can parse: either an empty body (e.g. 202) or JSON such as {"duplicate": true}.
Repro
Send the same event to /track twice within the dedupe window from the web SDK and watch the console.
Seen on a self-hosted instance with SDK 1.3.1.
- Ngôn ngữ chính
- TypeScript
- Star
- 7.2k
- Fork
- 523
- Merge trung bình
- 15 giờ 45 phút
- Pull request đã merge (30 ngày)
- 40
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Openpanel-dev/openpanel
-
Insights never generated on self-hosted: daily job filters on raw `subscriptionStatus = 'active'`Có thể đã có người làm @grootbro đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Openpanel-dev/openpanel#597 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ClickHouse retry logs print CLICKHOUSE_URL with its passwordCó thể đã có người làm @ppjsw đã nhận 4 ngày trước. Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 92/100
Openpanel-dev/openpanel#551 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
login page needs refinementCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Openpanel-dev/openpanel#495 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Session-grouped queries treat every sessionless event as one session (wrong results, ClickHouse OOM)Có thể đã có người làm @grootbro đã nhận hôm nay. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
Openpanel-dev/openpanel#575 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Duplicate event rows observed during a Kafka consumer-group rebalance with multiple workersCó thể đã có người làm @grootbro đã nhận hôm nay. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Openpanel-dev/openpanel#563 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Openpanel-dev/openpanel
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
farion1231/cc-switch#8829 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverĐang mởdoc-audit enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100