diff --git a/app/blog/[slug]/page.tsx b/app/blog/[slug]/page.tsx index 07ce61e..6efe967 100644 --- a/app/blog/[slug]/page.tsx +++ b/app/blog/[slug]/page.tsx @@ -107,6 +107,8 @@ async function getData(slug: string) { return { post, relatedPosts }; } catch(error) { + console.error(`[getData] Failed to get data for slug: "${slug}"`); + console.error(`[getData] Error:`, error); notFound(); } } diff --git a/lib/posts.ts b/lib/posts.ts index d439511..1cb1bb2 100644 --- a/lib/posts.ts +++ b/lib/posts.ts @@ -56,6 +56,10 @@ export async function getPostData(slug: string): Promise { const fileName = fileNames.find((name) => name.includes(slug))!; if(!fileName) { + console.error(`[getPostData] Post not found for slug: "${slug}"`); + console.error(`[getPostData] Posts directory: ${postsDirectory}`); + console.error(`[getPostData] Available files (${fileNames.length} total):`, fileNames.slice(0, 10)); + console.error(`[getPostData] Searched with: name.includes("${slug}")`); throw new Error('Post not found'); } @@ -65,9 +69,19 @@ export async function getPostData(slug: string): Promise { export async function getRelatedPosts(post: PostData): Promise { const relatedPosts = post.related_posts || []; - const posts = await Promise.all(relatedPosts.map((slug) => getPostData(slug))); - - return posts.filter((item) => !item.unpublished); + const posts = await Promise.all( + relatedPosts.map(async (slug) => { + try { + return await getPostData(slug); + } catch (error) { + console.error(`[getRelatedPosts] Failed to load related post with slug: "${slug}" for post: "${post.slug}"`); + console.error(`[getRelatedPosts] Error:`, error); + return null; + } + }) + ); + + return posts.filter((item) => item !== null && !item.unpublished) as PostData[]; } export function getPostByFilename(fileName: string): PostData {