{"record":{"id":"bf9517fb33d8a681","repo":"SigNoz/signoz","slug":"errcodealertmanagerstatenotfound","errorCode":"ErrCodeAlertmanagerStateNotFound","errorMessage":"state not found","messagePattern":"state not found","errorType":"error_code","errorClass":"errors SigNozError","httpStatus":404,"severity":"warning","filePath":"pkg/types/alertmanagertypes/state.go","lineNumber":83,"sourceCode":"\t}\n\n\ts.UpdatedAt = time.Now()\n\n\treturn int64(len(marshalledState)), nil\n}\n\nfunc (s *StoreableState) Get(stateName StateName) (string, error) {\n\tbase64encodedState := \"\"\n\n\tswitch stateName {\n\tcase SilenceStateName:\n\t\tbase64encodedState = s.Silences\n\tcase NFLogStateName:\n\t\tbase64encodedState = s.NFLog\n\t}\n\n\tif base64encodedState == \"\" {\n\t\treturn \"\", errors.New(errors.TypeNotFound, ErrCodeAlertmanagerStateNotFound, \"state not found\")\n\t}\n\n\tdecodedState, err := base64.StdEncoding.DecodeString(base64encodedState)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn string(decodedState), nil\n}\n\ntype StateName struct {\n\tname string\n}\n\nfunc (s StateName) String() string {\n\treturn s.name\n}\n","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/types/alertmanagertypes/state.go#L65-L101","documentation":"Get on the alertmanager state store returns this when the requested state bucket (silences or nflog) is empty. State is stored base64-encoded per section; an empty string means no persisted state exists for that name yet. Callers like nonEmptyConfigsField use it to detect first-run/no-state conditions.","triggerScenarios":"Calling state.Get(SilencesStateName) or Get(NFLogStateName) before any silences or notifications have been created/persisted; reading state right after a fresh install or state wipe.","commonSituations":"Fresh deployments with no silences yet, state persistence not mounted/wired so nothing was ever saved, or querying immediately after state reset.","solutions":["Treat ErrCodeAlertmanagerStateNotFound as a non-fatal 'no state yet' case and initialize empty state","Verify silences/nflog have actually been persisted (check that state was saved at least once)","If state should exist, check persistence backend configuration (volume/DB) is correct"],"exampleFix":"// before\nval, err := state.Get(SilencesStateName)\nif err != nil { return err }\n// after\nval, err := state.Get(SilencesStateName)\nif err != nil {\n  if errors.Is(err, ErrCodeAlertmanagerStateNotFound) { val = \"\" } else { return err }\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"val, err := state.Get(name)\nif err != nil {\n  if apiErr, ok := err.(errors.Error); ok && apiErr.Code == ErrCodeAlertmanagerStateNotFound {\n    val = \"\" // first run: no persisted state yet\n  } else {\n    return err\n  }\n}","preventionTips":["Check for empty state strings before calling Get","Treat not-found as expected on fresh installations and seed empty silences/nflog"],"tags":["alertmanager","state","not-found","silences"],"backgroundTag":"resource-state-not-found","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}