Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Duplicate /track requests return plain text 'Duplicate event', SDK throws JSON parse error

Đang mở Phù hợp với người mới
#579 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@grootbro đang làm issue này rồi.

Từ ngày 23/10/2026.

  • #596 của @grootbro — đang mở

Đá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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Openpanel-dev/openpanel

Tất cả issue của Openpanel-dev/openpanel

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.