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

TS SDK: failed procedure calls reject with a bare string instead of an Error

Đang mở Phù hợp với người mới
#6,288 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

Chưa có ai nhận issue nà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
82/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
devtools

Hướng nghiên cứu

Bắt đầu từ crates/bindings-typescript/src/sdk/db_connection_impl.ts, trong các callback procedure của #callProcedureWithEncodedName và #callProcedureGeneric, nơi nhánh lỗi reject bằng chuỗi thô result.value. So sánh với đường reducer trong cùng tệp, đường này bao giá trị trong một lớp con của Error. Hoàn thành khi cả hai đường procedure đều reject với một Error mang cùng thông báo, và kiểm tra Jest rejects.toThrow trên một lệnh gọi procedure thất bại vượt qua.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Version: spacetimedb npm 2.11.0 and 2.12.0; still present on master (1b67ca3).

Where: crates/bindings-typescript/src/sdk/db_connection_impl.ts, the procedure callbacks in #callProcedureWithEncodedName and #callProcedureGeneric:

if (result.tag === 'Ok') {
  resolve(result.value);
} else {
  reject(result.value); // a plain string
}

Reducer calls in the same file reject with new InternalError(result.value) (or SenderError), so await conn.reducers.x(...) always rejects with an Error, but await conn.procedures.x(...) rejects with a bare string when the host fails the call (for example invalid arguments for procedure ...: data too short ... after a module republish changes a parameter type).

Effect:

  • No stack trace, and error instanceof Error checks treat it as unknown.
  • Jest's await expect(p).rejects.toThrow(...) reports "Received function did not throw" for a rejected procedure call.

Suggested fix: reject with new InternalError(result.value) in both procedure callbacks, matching the reducer path.

Ngôn ngữ chính
Rust
Star
25.3k
Fork
1.1k
Merge trung bình
3 ngày 31 phút
Pull request đã merge (30 ngày)
66

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • 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 clockworklabs/SpacetimeDB

Tất cả issue của clockworklabs/SpacetimeDB

Issue tương tự

Thêm issue về Rust

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.