getsops/sops · error
SOPS only supports JSON files with a top-level object (start
Error message
SOPS only supports JSON files with a top-level object (starting with '{'), not other JSON types. Got %#v of type %T instead What it means
Error "SOPS only supports JSON files with a top-level object (starting with '{'), not other JSON types. Got %#v of type %T instead" thrown in getsops/sops.
Source
Thrown at stores/json/store.go:299
dec := json.NewDecoder(bytes.NewReader(in))
// Decode numbers as json.Number instead of the default float64, then
// normalize each to int/float64 (see normalizeJSONNumber). The default
// float64 silently loses precision for integers larger than 2^53.
dec.UseNumber()
value, err := dec.Token()
if err != nil {
return nil, err
}
if delim, ok := value.(json.Delim); ok {
if delim.String() != "{" {
return nil, fmt.Errorf("SOPS only supports JSON files with a top-level object (starting with '{'), not arrays or other types. Got delimiter %s instead. To encrypt this file, wrap it in an object, e.g., {\"data\": [...]}", value)
}
} else {
v, nerr := normalizeJSONNumber(value)
if nerr != nil {
v = value
}
return nil, fmt.Errorf("SOPS only supports JSON files with a top-level object (starting with '{'), not other JSON types. Got %#v of type %T instead", v, v)
}
return store.treeBranchFromJSONDecoder(dec)
}
func (store Store) reindentJSON(in []byte) ([]byte, error) {
var out bytes.Buffer
indent := "\t"
if store.config.Indent > -1 {
indent = strings.Repeat(" ", store.config.Indent)
} else if store.config.Indent < -1 {
return nil, errors.New("JSON Indentation parameter smaller than -1 is not accepted")
}
err := json.Indent(&out, in, "", indent)
return out.Bytes(), err
}
// LoadEncryptedFile loads an encrypted secrets file onto a sops.Tree object
func (store *Store) LoadEncryptedFile(in []byte) (sops.Tree, error) {View on GitHub (pinned to 13442bb981)
When it happens
Trigger: Thrown at stores/json/store.go:299 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of getsops/sops@13442bb981 (2026-09-01).
Data as JSON: /api/errors/d7c7634e391178ad.
Report an issue: GitHub.