{"record":{"id":"3d9c2578053f110b","repo":"getsops/sops","slug":"function-passphraseprompt-called-too-many-times","errorCode":null,"errorMessage":"function passphrasePrompt called too many times","messagePattern":"function passphrasePrompt called too many times","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgp/keysource.go","lineNumber":548,"sourceCode":"\t\tpath = filepath.Join(gnuPGHome(key.gnuPGHomeDir), defaultSecRing)\n\t}\n\tif _, err := os.Lstat(path); err != nil {\n\t\tif !os.IsNotExist(err) {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn key.getPubRing()\n\t}\n\treturn loadRing(path)\n}\n\n// passphrasePrompt prompts the user for a passphrase when this is required for\n// encryption or decryption.\nfunc (key *MasterKey) passphrasePrompt() func(keys []openpgp.Key, symmetric bool) ([]byte, error) {\n\tcallCounter := 0\n\tmaxCalls := 3\n\treturn func(keys []openpgp.Key, symmetric bool) ([]byte, error) {\n\t\tif callCounter >= maxCalls {\n\t\t\treturn nil, fmt.Errorf(\"function passphrasePrompt called too many times\")\n\t\t}\n\t\tcallCounter++\n\n\t\tconn, err := gpgagent.NewConn()\n\t\tif err == gpgagent.ErrNoAgent {\n\t\t\tlog.Infof(\"gpg-agent not found, continuing with manual passphrase \" +\n\t\t\t\t\"input...\")\n\t\t\tfmt.Print(\"Enter PGP key passphrase: \")\n\t\t\tpass, err := term.ReadPassword(int(os.Stdin.Fd()))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tfor _, k := range keys {\n\t\t\t\tk.PrivateKey.Decrypt(pass)\n\t\t\t}\n\t\t\treturn pass, err\n\t\t}\n\t\tif err != nil {","sourceCodeStart":530,"sourceCodeEnd":566,"githubUrl":"https://github.com/getsops/sops/blob/13442bb98183887d7a9ac09ec8ab0564673a59d8/pgp/keysource.go#L530-L566","documentation":"Error \"function passphrasePrompt called too many times\" thrown in getsops/sops.","triggerScenarios":"Thrown at pgp/keysource.go:548 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"13442bb98183887d7a9ac09ec8ab0564673a59d8","analyzedAt":"2026-09-01T03:53:00.447Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}