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

Aberta
#497 1 comentário 2 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 3 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
52/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
react, typescript
Domínio
frontend

Direção de pesquisa

Comece rastreando o fluxo de JSON_ARRAY em packages/appkit-ui/src/react/hooks/use-analytics-query.ts, especialmente o tratamento do payload terminal e a configuração da conexão nas linhas citadas; em seguida, inspecione packages/appkit-ui/src/js/sse/connect-sse.ts. Reproduza isso em um app de teste criado com databricks apps init; a tarefa estará concluída quando uma solicitação SSE HTTP 200 atingir um estado terminal correto do hook, em vez de permanecer carregando ou posteriormente se tornar um erro inesperado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
TypeScript
Estrelas
119
Forks
36
Merge médio
4d 16h
PRs com merge (30d)
37

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de databricks/appkit

Todas as issues de databricks/appkit

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.