{"record":{"id":"789ac8b3945b76ef","repo":"vercel/next.js","slug":"self-signed-certificates-are-currently-an-experime","errorCode":null,"errorMessage":"Self-signed certificates are currently an experimental feature, use with caution.","messagePattern":"Self-signed certificates are currently an experimental feature, use with caution\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/cli/next-dev.ts","lineNumber":486,"sourceCode":"          }\n\n          // Reset the start time so \"Ready in X\" reflects the restart\n          // duration, not time since the original process started.\n          process.env.NEXT_PRIVATE_START_TIME = Date.now().toString()\n\n          return startServer({ ...startServerOptions, port })\n        }\n        // Call handler (e.g. upload telemetry). Don't try to send a signal to\n        // the child, as it has already exited.\n        await handleSessionStop(/* signal */ null)\n      })\n    })\n  }\n\n  const runDevServer = async (reboot: boolean) => {\n    try {\n      if (!!options.experimentalHttps) {\n        Log.warn(\n          'Self-signed certificates are currently an experimental feature, use with caution.'\n        )\n\n        let certificate: SelfSignedCertificate | undefined\n\n        const key = options.experimentalHttpsKey\n        const cert = options.experimentalHttpsCert\n        const rootCA = options.experimentalHttpsCa\n\n        if (key && cert) {\n          certificate = {\n            key: path.resolve(key),\n            cert: path.resolve(cert),\n            rootCA: rootCA ? path.resolve(rootCA) : undefined,\n          }\n        } else {\n          certificate = await createSelfSignedCertificate(host)\n        }","sourceCodeStart":468,"sourceCodeEnd":504,"githubUrl":"https://github.com/vercel/next.js/blob/0eb377541648e63402a47b38fee00a8d0ce8f8f1/packages/next/src/cli/next-dev.ts#L468-L504","documentation":"runDevServer warns when --experimental-https (self-signed certificate mode) is used: Next.js generates locally-trusted self-signed certs for local HTTPS, which browsers treat as untrusted and which are not production-grade TLS; experimental-use-only notice.","triggerScenarios":"Thrown at packages/next/src/cli/next-dev.ts:486 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a properly signed certificate for production; self-signed certs are experimental for local dev only."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0eb377541648e63402a47b38fee00a8d0ce8f8f1","analyzedAt":"2026-08-19T02:10:13.922Z","contentChangedAt":"2026-08-19T02:10:13.922Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}