{"record":{"id":"7b1e8f012c63fe47","repo":"nats-io/nats-server","slug":"error-restoring-consumer-q-v","errorCode":null,"errorMessage":"error restoring consumer [%q]: %v","messagePattern":"error restoring consumer \\[%q\\]: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/stream.go","lineNumber":9461,"sourceCode":"\t\tmset.setCreatedTime(fcfg.Created)\n\t}\n\n\t// Make sure we do an update if the configs have changed.\n\tif !reflect.DeepEqual(fcfg.StreamConfig, cfg) {\n\t\tif err := mset.update(&cfg); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Now do consumers.\n\todir := filepath.Join(ndir, consumerDir)\n\tofis, _ := os.ReadDir(odir)\n\tfor _, ofi := range ofis {\n\t\tmetafile := filepath.Join(odir, ofi.Name(), JetStreamMetaFile)\n\t\tmetasum := filepath.Join(odir, ofi.Name(), JetStreamMetaFileSum)\n\t\tif _, err := os.Stat(metafile); os.IsNotExist(err) {\n\t\t\tmset.stop(true, false)\n\t\t\treturn nil, fmt.Errorf(\"error restoring consumer [%q]: %v\", ofi.Name(), err)\n\t\t}\n\t\tbuf, err := os.ReadFile(metafile)\n\t\tif err != nil {\n\t\t\tmset.stop(true, false)\n\t\t\treturn nil, fmt.Errorf(\"error restoring consumer [%q]: %v\", ofi.Name(), err)\n\t\t}\n\t\tif _, err := os.Stat(metasum); os.IsNotExist(err) {\n\t\t\tmset.stop(true, false)\n\t\t\treturn nil, fmt.Errorf(\"error restoring consumer [%q]: %v\", ofi.Name(), err)\n\t\t}\n\t\tvar cfg FileConsumerInfo\n\t\tif err := json.Unmarshal(buf, &cfg); err != nil {\n\t\t\tmset.stop(true, false)\n\t\t\treturn nil, fmt.Errorf(\"error restoring consumer [%q]: %v\", ofi.Name(), err)\n\t\t}\n\t\tisEphemeral := !isDurableConsumer(&cfg.ConsumerConfig)\n\t\tif isEphemeral {\n\t\t\t// This is an ephermal consumer and this could fail on restart until","sourceCodeStart":9443,"sourceCodeEnd":9479,"githubUrl":"https://github.com/nats-io/nats-server/blob/3a66a489d262bf89b71a71c955c94920394532f3/server/stream.go#L9443-L9479","documentation":"While restoring a JetStream account from a snapshot, reading a consumer's meta file path failed the os.Stat existence check — the expected consumer metadata file (JetStreamMetaFile) is missing in the extracted snapshot directory. The affected stream/consumer dir is named; the restore aborts and the temp dir is removed. Corrupt or incomplete snapshot.","triggerScenarios":"Thrown at server/stream.go:9461 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Re-create the snapshot ensuring consumers finish exporting","Check source server logs for consumer meta write failures","Match server versions between snapshot source and restore target"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3a66a489d262bf89b71a71c955c94920394532f3","analyzedAt":"2026-09-02T04:41:54.247Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}