Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

(bug) A rate-limited traces list shows the ordinary empty state

Aperta
#7,038 1 commento 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
react, typescript
Ambito
frontend

Direzione di ricerca

Start with web/packages/agenta-entities/src/trace/api/api.ts, especially fetchAllPreviewTracesWithMeta at lines 184–192, then inspect its two callers: the traces list and bulk export. Check how the list handles query errors and rate limits, and run the relevant trace-list and export tests. Done means rate-limit failures appear as a load error with a retry in the list, while bulk export retains its rate-limit pacing behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug report frontend observability

When the traces list is rate limited, it shows the ordinary empty state. The user is told that nothing matches their filters and is offered a "Clear filters" button. Nothing says the request failed, and clearing the filters does not help, because the list never asked for data successfully.

Steps to reproduce

  1. Open the traces list, on mobile or on desktop.
  2. Make the trace query answer 429.

Expected: the list says it could not load, ideally that the request was rate limited, and offers a retry.

Actual: "Nothing matches these filters. Try a wider time range, or clear the filters." with a "Clear filters" button. The browser console shows the real outcome:

[fetchAllPreviewTracesWithMeta] failed: Status code: 429

Where it comes from

Read on release/v0.119.1. fetchAllPreviewTracesWithMeta in web/packages/agenta-entities/src/trace/api/api.ts:184-192 catches every error other than an abort, logs it, and returns {data: null, rateLimit: empty}:

} catch (error) {
    if (isAbortError(error)) throw error
    console.error("[fetchAllPreviewTracesWithMeta] failed:", ...)
    return {data: null, rateLimit: empty}
}

Because the promise resolves, the query never enters its error state, and every branch downstream that handles a failure, including the two that handle a 429 specifically, is unreachable. The list sees no rows and renders the empty state.

This is old behaviour and is untouched by this release.

Proposed fix

Return the failure inside the result rather than swallowing it, so callers keep their current contract and can also see what happened. The function has two callers with different needs: the list wants an error state, and the bulk export wants to keep pacing itself on the rate limit headers without throwing mid-page. A result shaped like {data, rateLimit, error} serves both, and the list can then render a load error with a retry instead of the empty state.

Throwing instead would be simpler, but it would change the pagination and bulk export behaviour, which is presumably why the catch is there in the first place.

Lingua principale
TypeScript
Stelle
4.8k
Fork
690
Merge medio
21h 3m
PR unite (30g)
448

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Agenta-AI/agenta

Tutte le issue di Agenta-AI/agenta

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.