Root layout-filen (`app/layout.js`) måste returnera `<html>` och `<body>` som yttersta element.
Förklaring
I App Router är app/layout.js den fil som omsluter hela applikationen. Next.js kräver att den returnerar en HTML-struktur med <html> och <body> som yttersta element. Här kan Next.js injicera metadata, scripts, och globala UI-element.
Felet är vanligast när man precis börjat ett nytt App Router-projekt och skapar en layout utan den obligatoriska strukturen, eller när man migrerar från Pages Router där _app.js och _document.js hanterade detta separat.
Nested layouts i undermappar behöver inte <html> och <body> — det är bara root layout som kräver det.
Vanliga orsaker
Root layout returnerar bara en wrapper-<div> utan <html> och <body>. Glömt att inkludera {children} inuti <body>.
Lösning
Root layout ska se ut så här:
export default function RootLayout({ children }) {
return (
<html lang="sv">
<body>{children}</body>
</html>
);
}lang-attributet är viktigt för tillgänglighet och SEO. Nested layouts returnerar bara ett vanligt element kring {children}.