Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add otahontas/piception
Or install specific skill: npx add-skill https://github.com/otahontas/piception/tree/main/examples/nextjs-server-side-error-debugging
# Description
|
# SKILL.md
name: nextjs-server-side-error-debugging
description: |
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.
author: pi coding assistant
version: 1.0.0
date: 2024-01-15
Next.js Server-Side Error Debugging
Problem
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.
Context / Trigger Conditions
This skill applies when:
- Page displays "Internal Server Error" or custom error page
- Browser console shows no errors, or only a generic fetch failure
- You're using
getServerSideProps,getStaticProps, or API routes - Error only occurs on page refresh or direct navigation (not client-side transitions)
- The error is intermittent and hard to reproduce in the browser
Common misleading symptoms:
- "Unhandled Runtime Error" modal that doesn't show the real cause
- Network tab shows 500 but response body is empty or generic
- Error disappears when you add console.log (timing issue)
Solution
Step 1: Check the Terminal
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
Step 2: Add Explicit Error Handling
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 } };
}
}
Step 3: For Production Errors
Check your hosting provider's logs:
- Vercel: Dashboard β Project β Logs (Functions tab)
- AWS: CloudWatch Logs
- Netlify: Functions tab in dashboard
- Self-hosted: Check your Node.js process logs
Step 4: Common Causes
- Environment variables: Missing in production but present locally
- Database connections: Connection string issues, cold starts
- Import errors: Server-only code accidentally imported on client
- Async/await: Missing await on async operations
- JSON serialization: Objects that can't be serialized (dates, functions)
Verification
After checking the terminal, you should see:
- Full stack trace with file name and line number
- The actual error message (not generic 500)
- Variable values if you added console.log statements
Example
Symptom: User reports page shows "Internal Server Error" after clicking a link.
Investigation:
- Open browser DevTools β Console: Empty
- Network tab shows:
GET /dashboard β 500 - Check terminal running
npm 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.
Notes
- In development, Next.js sometimes shows an error overlay, but it often has less
detail than the terminal output reactStrictMode: trueinnext.config.jscauses double-execution of server
functions in development, which can make debugging confusing- For API routes, the error appears in the same terminal as page errors
- Client-side errors (in useEffect, event handlers) DO appear in browser consoleβ
this skill only applies to server-side code - If using
next start(production mode locally), errors may be less verbose;
checkNODE_ENVand consider adding custom error logging
# README.md
Piception
Meta-learning extension for pi coding agent that captures debugging discoveries as reusable skills. Ported from Claudeception.
The idea: when you spend time debugging a cryptic error / codebase / whatever, you usually learn something that you want to save for the future. With piception, you can save that knowledge as a agentic skill (for pi/claude/codex/you name it). Skill setup follows the open agent skills standard.
Installation
Via Nix (recommended):
# Install globally
nix profile install github:otahontas/pi-piception
# Or via Home Manager
programs.pi.piception.enable = true;
Via Git:
git clone https://github.com/otahontas/pi-piception ~/.pi/agent/extensions/piception
Pi auto-loads extensions on startup, no config needed.
Verify it loaded:
pi
Type /piception stats - should show session statistics.
Quick start
1. Do real work
Have a conversation involving debugging or problem-solving:
User: Run npm test
Assistant: [shows failing test with error]
User: Why is UserService undefined?
Assistant: [investigates, finds circular dependency]
User: How do I fix it?
Assistant: [suggests extracting interface, shows fix]
User: That worked!
2. Save the learning
Say: "save this as a skill"
3. Review and create
Interactive wizard lets you:
- Edit skill name (kebab-case)
- Edit description (add trigger keywords)
- Edit full content in your editor
- Choose location (all projects vs. this project)
- Confirm creation
4. Skill loads automatically next time
When you hit similar errors, pi loads the skill automatically based on semantic matching.
Usage
Automatic triggers
Piception watches for:
- Keywords - "save this as a skill", "extract a skill", "what did we learn?"
- Session end - Offers extraction if significant debugging happened
Manual commands
/piception # analyze session, extract skills
/piception stats # show session metrics
Development
Uses devenv with Nix for reproducible environment (mostly for formatting and git pre-commits).
Install prerequisites:
Available commands:
Check the justfile for all recipes.
References
License
MIT
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.