{"record":{"id":"0760290f162dd25d","repo":"argoproj/argo-workflows","slug":"failed-to-generate-private-key-w","errorCode":null,"errorMessage":"failed to generate private key: %w","messagePattern":"failed to generate private key: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"util/tls/tls.go","lineNumber":53,"sourceCode":"\tcase *ecdsa.PrivateKey:\n\t\tb, err := x509.MarshalECPrivateKey(k)\n\t\tif err != nil {\n\t\t\tlog.Print(err)\n\t\t\tos.Exit(2)\n\t\t}\n\t\treturn &pem.Block{Type: \"EC PRIVATE KEY\", Bytes: b}\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc generate() ([]byte, crypto.PrivateKey, error) {\n\thosts := []string{\"localhost\"}\n\n\tvar err error\n\tprivateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to generate private key: %w\", err)\n\t}\n\n\tnotBefore := time.Now()\n\tnotAfter := notBefore.Add(365 * 24 * time.Hour)\n\n\tserialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)\n\tserialNumber, err := rand.Int(rand.Reader, serialNumberLimit)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to generate serial number: %w\", err)\n\t}\n\n\ttemplate := x509.Certificate{\n\t\tSerialNumber: serialNumber,\n\t\tSubject: pkix.Name{\n\t\t\tOrganization: []string{\"ArgoProj\"},\n\t\t},\n\t\tNotBefore: notBefore,\n\t\tNotAfter:  notAfter,","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/util/tls/tls.go#L35-L71","documentation":"util/tls generate() failed to create the ECDSA P-256 private key for the self-signed certificate (ecdsa.GenerateKey with crypto/rand). Essentially only fires on entropy or crypto backend failures; argo-server/CLI TLS cert generation aborts.","triggerScenarios":"Thrown at util/tls/tls.go:53 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry — entropy exhaustion is usually transient","Check for a broken crypto/entropy setup in the container or host"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"35bff19146f5a6ada77468c431f2624bd577e373","analyzedAt":"2026-09-03T19:34:35.908Z","contentChangedAt":"2026-09-03T19:34:35.908Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}