temporalio/temporal · error
failed to parse x509 certificate: %w
Error message
failed to parse x509 certificate: %w
What it means
Error "failed to parse x509 certificate: %w" thrown in temporalio/temporal.
Source
Thrown at common/rpc/encryption/local_store_cert_provider.go:461
if ca == "" {
continue
}
caBytes, err := getBytes(ca)
if err != nil {
return nil, nil, fmt.Errorf("failed to decode ca cert: %w", err)
}
if caPool == nil {
caPool = x509.NewCertPool()
}
if !caPool.AppendCertsFromPEM(caBytes) {
return nil, nil, errors.New("unknown failure constructing cert pool for ca")
}
cert, err := parseCert(caBytes)
if err != nil {
return nil, nil, fmt.Errorf("failed to parse x509 certificate: %w", err)
}
certs = append(certs, cert)
}
return caPool, certs, nil
}
// logic borrowed from tls.X509KeyPair()
func parseCert(bytes []byte) (*x509.Certificate, error) {
var certBytes [][]byte
for {
var certDERBlock *pem.Block
certDERBlock, bytes = pem.Decode(bytes)
if certDERBlock == nil {
break
}
if certDERBlock.Type == "CERTIFICATE" {
certBytes = append(certBytes, certDERBlock.Bytes)View on GitHub (pinned to bde624efd1)
When it happens
Trigger: Thrown at common/rpc/encryption/local_store_cert_provider.go:461 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- SSL/TLS and certificate errors — how TLS handshakes and certificate validation fail.
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01).
Data as JSON: /api/errors/4fd86c5a6b0d69b8.
Report an issue: GitHub.