{"record":{"id":"4abc2e5bda80a5aa","repo":"caddyserver/caddy","slug":"loading-tls-session-ticket-ephemeral-keys-provider","errorCode":null,"errorMessage":"loading TLS session ticket ephemeral keys provider module: %s","messagePattern":"loading TLS session ticket ephemeral keys provider module: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"modules/caddytls/sessiontickets.go","lineNumber":75,"sourceCode":"func (s *SessionTicketService) provision(ctx caddy.Context) error {\n\ts.configs = make(map[*tls.Config]struct{})\n\ts.mu = new(sync.Mutex)\n\n\t// establish sane defaults\n\tif s.RotationInterval == 0 {\n\t\ts.RotationInterval = caddy.Duration(defaultSTEKRotationInterval)\n\t}\n\tif s.MaxKeys <= 0 {\n\t\ts.MaxKeys = defaultMaxSTEKs\n\t}\n\tif s.KeySource == nil {\n\t\ts.KeySource = json.RawMessage(`{\"provider\":\"standard\"}`)\n\t}\n\n\t// load the STEK module, which will provide keys\n\tval, err := ctx.LoadModule(s, \"KeySource\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"loading TLS session ticket ephemeral keys provider module: %s\", err)\n\t}\n\ts.keySource = val.(STEKProvider)\n\n\t// if session tickets or just rotation are\n\t// disabled, no need to start service\n\tif s.Disabled || s.DisableRotation {\n\t\treturn nil\n\t}\n\n\t// start the STEK module; this ensures we have\n\t// a starting key before any config needs one\n\treturn s.start()\n}\n\n// start loads the starting STEKs and spawns a goroutine\n// which loops to rotate the STEKs, which continues until\n// stop() is called. If start() was already called, this\n// is a no-op.","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/caddyserver/caddy/blob/50e54ee279aa1e504fe218ca49ab6ae16c100410/modules/caddytls/sessiontickets.go#L57-L93","documentation":"Error \"loading TLS session ticket ephemeral keys provider module: %s\" thrown in caddyserver/caddy.","triggerScenarios":"Thrown at modules/caddytls/sessiontickets.go:75 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the session ticket keys provider module name and configuration; the wrapped error identifies the problem."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"50e54ee279aa1e504fe218ca49ab6ae16c100410","analyzedAt":"2026-08-15T09:20:21.641Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}