Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

TS SDK: `Result` errors are serialized with the `ok` type (instance crash)

Abierto Apto para principiantes
#6,122 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@Tyagiquamar ya está trabajando en esto.

Desde el 11/10/2026.

  • #6142 de @Tyagiquamar — abierto
  • #6148 de @aasoni — abierto

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
85/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
devtools

Línea de trabajo

El error está en crates/bindings-typescript/src/lib/algebraic_type.ts alrededor de las líneas 655-662, donde serializeErr se construye a partir de ty.variants[0] en lugar de ty.variants[1]. Lee el serializador de resultados que lo rodea para confirmar el patrón y, después, añade un test que serialice un t.result cuyos tipos ok y err sean distintos, como t.result(SomeObject, t.string()) con { err: 'nope' }. Está terminado cuando la cadena de error se serializa como string y el test pasa.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Version: spacetimedb (npm) 2.11.0, still on master e596513
Where: crates/bindings-typescript/src/lib/algebraic_type.ts ~L655-662

const serializeOk = AlgebraicType.makeSerializer(ty.variants[0].algebraicType, typespace);
const serializeErr = AlgebraicType.makeSerializer(ty.variants[0].algebraicType, typespace); // ← should be variants[1]

Repro: a TS procedure (or anything else returning a result) declared as t.result(SomeObject, t.string()) that
returns { err: 'nope' }.

Actual: TypeError: Cannot read properties of undefined (reading 'length') in writeString, and the instance
reports a fatal error. The error string is written with the SomeObject serializer.
Expected: the error is serialized as a string.

It only works by accident when the ok and err types are the same (e.g. t.result(t.string(), t.string())).
Fix: ty.variants[1].algebraicType on the serializeErr line.

Lenguaje dominante
Rust
Estrellas
25.3k
Forks
1.1k
Merge medio
4 d 13 h
PR fusionados (30 d)
44

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de clockworklabs/SpacetimeDB

Todos los issues de clockworklabs/SpacetimeDB

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.