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

Local evaluation: a failed background flag config poll is logged at debug only

Aperta Adatta ai principianti
#84 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
88/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
nodejs, typescript
Ambito
observability

Direzione di ricerca

La correzione si trova in FlagConfigPoller.start() in packages/node/src/local/poller.ts, dove il blocco catch di update() periodico registra a livello debug. Confrontalo con il log di errore [Experiment] cohort poll failed in packages/node/src/local/cohort/poller.ts. È completato quando un poll periodico fallito della configurazione dei flag viene registrato a livello di errore, così da essere visibile con il valore predefinito LogLevel.Error.

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

Descrizione

Expected Behavior

When the local evaluation client's background poll for flag configs fails, the failure is logged at a level that reaches the application's logs under the default logLevel (LogLevel.Error), the same way CohortPoller already reports a failed cohort poll:

https://github.com/amplitude/experiment-node-server/blob/main/packages/node/src/local/cohort/poller.ts#L98

Current Behavior

FlagConfigPoller.start() catches the periodic update() failure and logs it at debug:

https://github.com/amplitude/experiment-node-server/blob/main/packages/node/src/local/poller.ts#L60-L62

} catch (e) {
  this.logger.debug('[Experiment] flag config update failed', e);
}

With the default LogLevel.Error the line never appears, so a client that stopped receiving flag updates keeps serving its last configs silently. Only the initial poll in start() is logged at error. The only way to see the periodic failure today is logLevel: LogLevel.Debug, which also emits a line per poll and per evaluateV2 call.

This matters because for local evaluation the poll is the only path a dashboard change (including turning a flag off) reaches the process.

Possible Solution

Log the periodic poll failure at error, matching [Experiment] cohort poll failed in the same package. One-line change in packages/node/src/local/poller.ts; PR to follow.

Steps to Reproduce

  1. Experiment.initializeLocal(key) with default config, await client.start().
  2. Make https://flag.lab.amplitude.com unreachable (e.g. block it or drop the network).
  3. Wait past flagConfigPollingIntervalMillis (30s).
  4. Nothing is logged; evaluateV2 keeps returning results from the last successful poll.

Environment

  • JS Server SDK Version: 1.13.6 (same on main)
  • Installation Method: npm / pnpm
  • Runtime: Node 24
Lingua principale
TypeScript
Stelle
2
Fork
9
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

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 amplitude/experiment-node-server

Tutte le issue di amplitude/experiment-node-server

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.