{"record":{"id":"e176e6d43d162a12","repo":"temporalio/temporal","slug":"uri-scheme-does-not-match-the-archiver","errorCode":null,"errorMessage":"URI scheme does not match the archiver","messagePattern":"URI scheme does not match the archiver","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"common/archiver/constants.go","lineNumber":29,"sourceCode":"\tArchiveTransientErrorMsg = \"Archive method encountered a transient error.\"\n\t// ArchiveSkippedInfoMsg is the log messsage when the Archive() method encounter an not found error\n\tArchiveSkippedInfoMsg = \"Archive method encountered not found error and skipped the archival\"\n\n\t// ErrReasonInvalidURI is the error reason for invalid URI\n\tErrReasonInvalidURI = \"URI is invalid\"\n\t// ErrReasonInvalidArchiveRequest is the error reason for invalid archive request\n\tErrReasonInvalidArchiveRequest = \"archive request is invalid\"\n\t// ErrReasonReadHistory is the error reason for failing to read history\n\tErrReasonReadHistory = \"failed to read history batches\"\n\t// ErrReasonHistoryMutated is the error reason for mutated history\n\tErrReasonHistoryMutated = \"history was mutated\"\n)\n\nvar (\n\t// ErrInvalidURI is the error for invalid URI\n\tErrInvalidURI = errors.New(\"URI is invalid\")\n\t// ErrURISchemeMismatch is the error for mismatch between URI scheme and archiver\n\tErrURISchemeMismatch = errors.New(\"URI scheme does not match the archiver\")\n\t// ErrHistoryMutated is the error for mutated history\n\tErrHistoryMutated = errors.New(\"history was mutated\")\n\t// ErrInvalidGetHistoryRequest is the error for invalid GetHistory request\n\tErrInvalidGetHistoryRequest = errors.New(\"get archived history request is invalid\")\n\t// ErrInvalidQueryVisibilityRequest is the error for invalid Query Visibility request\n\tErrInvalidQueryVisibilityRequest = errors.New(\"query visiblity request is invalid\")\n\t// ErrNextPageTokenCorrupted is the error for corrupted GetHistory token\n\tErrNextPageTokenCorrupted = errors.New(\"next page token is corrupted\")\n\t// ErrHistoryNotExist is the error for non-exist history\n\tErrHistoryNotExist = errors.New(\"requested workflow history does not exist\")\n)\n","sourceCodeStart":11,"sourceCodeEnd":41,"githubUrl":"https://github.com/temporalio/temporal/blob/bde624efd13fbd3843654058db6d9c716166318b/common/archiver/constants.go#L11-L41","documentation":"This is a wrapping error: validateCAs failed while parsing the ServerTLS.ClientCAData entries (PEM blobs of CAs used to verify mTLS clients). The %w carries the underlying reason from validateCAs, most commonly an empty string in the ClientCAData list.","triggerScenarios":"Calling validateGroupTLS/validateServerTLS with ServerTLS.ClientCAData containing an entry that is empty or whitespace-only (validateCAs rejects it).","commonSituations":"A YAML list with a trailing '-' empty item under client_ca_data; an environment-variable substitution that expanded to nothing; template rendering leaving a blank entry.","solutions":["Inspect ClientCAData and remove empty/whitespace entries from the list.","Fix the env-var or template substitution that produced the blank entry.","If using file-based CAs instead, move the entries to ClientCAFiles and clear ClientCAData.","Validate the CA PEM blobs parse before deploying (e.g. openssl x509 -in ca.pem)."],"exampleFix":"// before\nClientCAData: [\"-----BEGIN CERTIFICATE-----...\", \"\"]\n// after\nClientCAData: [\"-----BEGIN CERTIFICATE-----...\"]","handlingStrategy":"validation","validationCode":"for i, ca := range cfg.ClientCAData {\n\tif strings.TrimSpace(ca) == \"\" {\n\t\treturn fmt.Errorf(\"ClientCAData[%d] is empty\", i)\n\t}\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Render and lint configs before deploy; drop blank list items.","Avoid env-var substitution for CA PEM unless the variable is guaranteed non-empty.","Keep CA data in secrets and verify secret mounts before service start."],"tags":["tls","config-validation","ca-certificates"],"backgroundTag":"tls-config-conflict","analyzedSha":"bde624efd13fbd3843654058db6d9c716166318b","analyzedAt":"2026-09-01T07:18:39.080Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}