NextJS prerender error when rendering sitemap.xml

784 views Asked by At

I'm building myself a simple markdown based blog and everything worked fine under developer environment but when it comes to build my project with the command npm run build, it gives me pre-rendering failed error.

Error occurred prerendering page "/sitemap.xml". Read more: https://nextjs.org/docs/messages/prerender-error
YAMLException: can not read a block mapping entry; a multiline key may not be an implicit key at line 5, column 1:

    ^
    at generateError (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:7999:12)
    at throwError (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:8002:11)
    at readBlockMapping (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:8631:17)
    at composeNode (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:8834:84)
    at readDocument (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:8958:5)
    at loadDocuments (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:9003:9)
    at load (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:9021:21)
    at Object.safeLoad (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:9039:12)
    at module.exports (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:6953:19)
    at parseMatter (/Users/batuhan/Git/blog-site/.next/server/chunks/325.js:6702:21)
- info Generating static pages (8/8)

> Export encountered errors on following paths:
    /sitemap.xml/route: /sitemap.xml

Even tho it gives me errors while building for production, the sitemap works perfectly fine under dev mode. Here is my sitemap.js file:

import { getPostMetadata } from "@/libs/getPostMetadata"
import { getPageMetadata } from "@/libs/getPageMetadata";
import { readConfig } from "@/libs/readConfig";

const config = readConfig();

export default async function sitemap() {
    const siteURL = config.siteURL
    const postMeta = await getPostMetadata();
    const postMetadata = postMeta.map((post) => {
        return {
            url: `${siteURL}/blog/${post.slug}`,
            lastModified: post.date
        }
    });

    const pageMeta = getPageMetadata();
    const pageMetadata = pageMeta.map((page) => {
        return {
            url: `${siteURL}/${page.slug}`,
            lastModified: new Date()
        }
    })

    return [
        {
            url: siteURL,
            lastModified: new Date(),
        },
        {
            url: `${siteURL}/about`
        },
        ...pageMetadata,
        ...postMetadata
    ]
}

As a fix I tried to remove the pageMetadata and postMetadata from it just in case but the result was same, works under dev mode but doesn't on production build.

Here is the sitemap.xml file I want to generate which generates perfectly fine under dev mode

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>www.thebatuhansnetwork.xyz</loc>
<lastmod>2023-08-25T15:49:10.984Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/about</loc>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/about</loc>
<lastmod>2023-08-25T15:49:10.984Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/ack</loc>
<lastmod>2023-08-25T15:49:10.984Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blogroll</loc>
<lastmod>2023-08-25T15:49:10.984Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/links</loc>
<lastmod>2023-08-25T15:49:10.984Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/main</loc>
<lastmod>2023-08-25T15:49:10.984Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2022-06-15-creating-a-new-blog-site-how-i-created-it</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2022-06-16-configuring-jekyll</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2022-06-23-im-using-an-hackintosh-for-6-months-now-what</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2022-11-30-here-goes-the-november-2022</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2022-12-31-here-comes-the-2023-what-do-i-expect</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-01-20-using-an-iphone-6-plus-as-a-secondary-phone-in-2023</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-01-22-beginning-of-the-100daystooffload</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-01-23-finally-https</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-01-26-its-time-for-personal-blogs-to-make-a-comeback</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-01-27-adding-rss-feeds-from-other-blogs-to-end-of-my-posts</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-02-23-im-back-on-blogging</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-03-02-my-messed-up-mind</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-03-09-im-on-diffblog-now</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-03-21-10th-post-of-100daystooffload</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-03-21-migrating-server-went-wrong</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-04-23-i-created-a-backup-site</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-01-iphone-7-plus-review-is-it-still-usable-in-2023</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-01-the-page-you-currently-in</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-05-today-is-6-may-2023</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-08-recreating-optiplex-server</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-09-it-was-firewall</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-10-i-switched-to-obsidian</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-22-I-hate-ubuntu-and-its-my-daily-driver-now</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-05-30-personal-blogs-should-be-simple</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-06-02-here-goes-my-highschool-life</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-06-23-I-m-sorry-but-I-m-not-going</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-06-28-we-already-have-mastodon</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-07-08-leaving-my-paid</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-08-01-25th-post</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-08-01-26th-post</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-08-03-27th-post</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
<url>
<loc>www.thebatuhansnetwork.xyz/blog/2023-08-08-I-just-rewrite-my-blog</loc>
<lastmod>2023-08-25T15:49:10.983Z</lastmod>
</url>
</urlset>

Any help will be appreciated.

1

There are 1 answers

1
Batuhan Y. Yılmaz On

Ok guys I found the problem. The config file I used had a problem on one of it's elements and even tho it's won't used on sitemap.xml it still reported as a problem at sitemap.xml. Fixing that line on my config.yml file fixed the problem.