useAnalyticsQuery can stay loading or later transition to error after HTTP 200 on JSON_ARRAY SSE requests

Ouverte
#497 1 commentaire 2 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 3 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
52/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
react, typescript
Domaine
frontend

Piste de recherche

Commencez par suivre le flux JSON_ARRAY dans packages/appkit-ui/src/react/hooks/use-analytics-query.ts, en particulier la gestion de la payload terminale et l’établissement de la connexion aux lignes citées, puis inspectez packages/appkit-ui/src/js/sse/connect-sse.ts. Reproduisez-le dans une application de test créée avec databricks apps init ; le travail est terminé lorsqu’une requête SSE HTTP 200 atteint un état terminal correct du hook au lieu de rester en chargement ou de devenir ultérieurement une erreur inattendue.

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

Description

Following up from 496

I have observed cases where useAnalyticsQuery returns an HTTP 200 for a JSON_ARRAY analytics request, but the hook remains in a loading state and later transitions to an error state.

I cannot reproduce this deterministically yet, but I have seen it happen a few times in a test app created with databricks apps init and got a screenshot on one of those instances:

Image

Some investigation I have done.

On the JSON_ARRAY path, an HTTP 200 only means the SSE transport opened successfully via connect-sse.ts:71 and passed the initial response.ok check in connect-sse.ts:80. The hook sets loading to true before starting the request in use-analytics-query.ts:434, and on the JSON_ARRAY branch it opens a per-instance SSE connection in use-analytics-query.ts:487 and use-analytics-query.ts:501. The hook only clears loading once a terminal SSE payload is processed: either type === "result" in use-analytics-query.ts:179 and use-analytics-query.ts:180, or type === "error" in use-analytics-query.ts:190 and use-analytics-query.ts:195. From a consumer point of view, this can look like a successful request that never actually resolves at the hook level.

Happy to help further if you think this is worth fixing.

Langage dominant
TypeScript
Étoiles
119
Forks
36
Merge moyen
4 j 16 h
PR mergées (30 j)
37

Préparer son environnement

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 databricks/appkit

Toutes les issues de databricks/appkit

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

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