.claude/skills/continuous-learning/examples/nextjs-server-side-error-debugging/SKILL.md
Debug getServerSideProps and getStaticProps errors in Next.js. Use when: (1) Page shows generic error but browser console is empty, (2) API routes return 500 with no details, (3) Server-side code fails silently, (4) Error only occurs on refresh not client navigation. Check terminal/server logs instead of browser for actual error messages.
npx skillsauth add Dbochman/dotfiles nextjs-server-side-error-debuggingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Server-side errors in Next.js don't appear in the browser console, making debugging frustrating when you're looking in the wrong place. The browser shows a generic error page or 500 status, but no stack trace or useful error information appears in DevTools.
This skill applies when:
getServerSideProps, getStaticProps, or API routesCommon misleading symptoms:
The actual error with full stack trace appears in the terminal where npm run dev
or next dev is running. This is the first place to look.
# If you don't see the terminal, find the process
ps aux | grep next
# Or restart with visible output
npm run dev
For persistent debugging, wrap server-side code with try-catch:
export async function getServerSideProps(context) {
try {
const data = await fetchSomething();
return { props: { data } };
} catch (error) {
console.error('getServerSideProps error:', error);
// Return error state instead of throwing
return { props: { error: error.message } };
}
}
Check your hosting provider's logs:
After checking the terminal, you should see:
Symptom: User reports page shows "Internal Server Error" after clicking a link.
Investigation:
GET /dashboard → 500npm run dev:Error: Cannot read property 'id' of undefined
at getServerSideProps (/app/pages/dashboard.tsx:15:25)
at renderToHTML (/app/node_modules/next/dist/server/render.js:428:22)
Cause found: Database query returned null instead of user object.
reactStrictMode: true in next.config.js causes double-execution of server
functions in development, which can make debugging confusingnext start (production mode locally), errors may be less verbose;
check NODE_ENV and consider adding custom error loggingdevelopment
Search the web for current information, news, facts, and answers. Use when asked questions about current events, needing to look something up, finding websites, researching topics, or when you need up-to-date information beyond your training data.
development
Summarize any URL, YouTube video, podcast, PDF, or file into concise text. Use when asked to read an article, summarize a link, get the gist of a video or podcast, extract content from a URL, or when you need to understand what a web page or document contains.
development
Play music via Spotify and control Google Home speakers. Use when asked to play music, songs, artists, playlists, podcasts, or control speakers/volume/audio.
testing
Create new OpenClaw skills, modify and improve existing skills, and measure skill performance with evals. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy. Also use when asked to "make a skill", "turn this into a skill", "improve this skill", or "test this skill".