Loading a YAML app config with a non-string map key panics

Chiusa Adatta ai principianti
#5,258 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@alexleventer ci sta già lavorando.

Dal 7/11/2026.

  • #5259 di @RaphaelFakhri — chiusa senza merge
  • #5392 di @alexleventer — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
84/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
go
Ambito
cli

Direzione di ricerca

Inizia in internal/appconfig/serde.go, alla funzione stringifyYAMLMapKeys, quindi riproduci il problema con l'esempio fly.yaml e fly config validate -c fly.yaml. Esamina la gestione esistente delle configurazioni YAML e TOML/JSON per determinare il comportamento previsto delle chiavi. Il lavoro è completato quando le chiavi YAML non stringa non causano più un panic e vengono gestite come chiavi stringa oppure segnalate come errore di configurazione.

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

Descrizione

bug

Describe the bug

A YAML app config that has a map key that is not a string, such as an integer or a boolean, crashes flyctl with a Go panic instead of loading the file or reporting an error.

Steps to reproduce

  1. Create fly.yaml:

    app: foo
    env:
      1: one
    
  2. Run fly config validate -c fly.yaml, or any command that loads the config.

Expected

The key is treated as the string "1", the same way TOML and JSON configs treat keys, or flyctl reports a config error.

Actual

panic: interface conversion: interface {} is int, not string

The panic comes from stringifyYAMLMapKeys in internal/appconfig/serde.go, which asserts that every key is a string.

Lingua principale
Go
Stelle
1.7k
Fork
320
Merge medio
2g 18h
PR unite (30g)
72

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 superfly/flyctl

Tutte le issue di superfly/flyctl

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.