vercel/next.js · error
Self-signed certificates are currently an experimental featu
Error message
Self-signed certificates are currently an experimental feature, use with caution.
What it means
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.
Source
Thrown at packages/next/src/cli/next-dev.ts:486
}
// Reset the start time so "Ready in X" reflects the restart
// duration, not time since the original process started.
process.env.NEXT_PRIVATE_START_TIME = Date.now().toString()
return startServer({ ...startServerOptions, port })
}
// Call handler (e.g. upload telemetry). Don't try to send a signal to
// the child, as it has already exited.
await handleSessionStop(/* signal */ null)
})
})
}
const runDevServer = async (reboot: boolean) => {
try {
if (!!options.experimentalHttps) {
Log.warn(
'Self-signed certificates are currently an experimental feature, use with caution.'
)
let certificate: SelfSignedCertificate | undefined
const key = options.experimentalHttpsKey
const cert = options.experimentalHttpsCert
const rootCA = options.experimentalHttpsCa
if (key && cert) {
certificate = {
key: path.resolve(key),
cert: path.resolve(cert),
rootCA: rootCA ? path.resolve(rootCA) : undefined,
}
} else {
certificate = await createSelfSignedCertificate(host)
}View on GitHub (pinned to 0eb3775416)
Solutions
- Use a properly signed certificate for production; self-signed certs are experimental for local dev only.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at packages/next/src/cli/next-dev.ts:486 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.
AI-assisted analysis of vercel/next.js@0eb3775416 (2026-08-19).
Data as JSON: /api/errors/789ac8b3945b76ef.
Report an issue: GitHub.