Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte Adaptée aux débutants
#6,288 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
82/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
typescript
Domaine
devtools

Piste de recherche

Commence dans crates/bindings-typescript/src/sdk/db_connection_impl.ts, dans les callbacks de procédure de #callProcedureWithEncodedName et #callProcedureGeneric, où la branche d'échec rejette avec la chaîne brute result.value. Compare avec le chemin des reducers dans le même fichier, qui enveloppe la valeur dans une sous-classe d'Error. C'est terminé lorsque les deux chemins de procédure rejettent avec une Error portant le même message, et qu'une vérification Jest rejects.toThrow sur un appel de procédure échoué réussit.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Rust
Étoiles
25.3k
Forks
1.1k
Merge moyen
3 j 31 min
PR mergées (30 j)
66

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de clockworklabs/SpacetimeDB

Toutes les issues de clockworklabs/SpacetimeDB

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.