Session still crashes with "JSON.stringify cannot serialize BigInt" after parallel scratch queries
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 38/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- sql, typescript
- Domaine
- backend
Piste de recherche
Start with the existing guard in packages/opencode/src/session/llm.ts around line 112 and the helper in packages/opencode/src/altimate/util/json.ts, which normalises BigInt values for outgoing model messages. Then reproduce with four parallel sql_execute calls returning BIGINT columns to find the unguarded path where tool results are stored, persisted or traced. Done means a session-level test covering that scenario and a second model turn completes, with stored and traced results JSON-serializable.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
A session died with UnknownError: JSON.stringify cannot serialize BigInt. after four parallel scratch sql_execute calls returned BIGINT counts. The run exited with status 1 and no answer, even though the answer had already been computed.
Mechanism
normalizeBigInts(input.messages) already guards outgoing model messages (packages/opencode/src/session/llm.ts:112, packages/opencode/src/altimate/util/json.ts:7), and an earlier fix landed for the same error. A different serialization path (tool-result storage, session persistence or tracing; the exact call site is not yet identified) is still unguarded when DuckDB returns BIGINT values from several concurrent tool calls.
Evidence
- 1 session out of about 1,255 scanned; it had the final table in hand at 47 s and then crashed on the next turn. The build already contained the earlier
normalizeBigIntsfix. - Not seen in sessions with Claude Opus.
Impact
Answer-losing but rare. Fatal when it happens.
Proposed fix
Normalise tool results to JSON-safe values at the single point where a tool result is stored, not only on outgoing model messages (BigInt to number when safe, string otherwise). Find the remaining throw site by reproducing with four parallel BIGINT-returning scratch queries.
Acceptance check
Session-level test: four parallel scratch sql_execute calls returning BIGINT columns, followed by a second model turn, completes without error and the stored/traced results are JSON-serializable.
- Langage dominant
- TypeScript
- Étoiles
- 812
- Forks
- 123
- Merge moyen
- 1 j 16 h
- PR mergées (30 j)
- 81
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de AltimateAI/altimate-code
-
fix(workspace): don't offer the engine install when a workspace declares no integration toolsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
AltimateAI/altimate-code#1593 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
AltimateAI/altimate-code#1591 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
AltimateAI/altimate-code#1590 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 69/100
AltimateAI/altimate-code#1588 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
AltimateAI/altimate-code#1573 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de AltimateAI/altimate-code
Issues similaires
-
verified
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 5 jours
-
desktop: directory picker submits home directory instead of typed path when adding a projectOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
anomalyco/opencode#59589 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Bug: During run init command, finish the git initialize process without question to user('Initialize a new git repository?')Peut-être pris @nishu-murmu l’a pris aujourd’hui. Ouvertepending-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
wxt-dev/wxt#2697 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
knaw-huc/textannoviz#739 ·
Les mainteneurs répondent en général sous 1 jour
-
DEV: partitioner only creates next month, so one failed run leaves a month with no partitionOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour