generate() and render() call returns { data, error } instead of throwing. Check error before using data.
Basic pattern
Error object
PdfnError is a class that extends Error:
instanceof to check for pdfn errors:
Error codes
| Code | Cause | Solution |
|---|---|---|
configuration_error | Missing server config | Run npx pdfn dev or set PDFN_API_KEY |
authentication_error | Invalid API key | Check your PDFN_API_KEY |
validation_error | Invalid input | Check your template or options |
rate_limit_error | Too many requests | Wait and retry, or upgrade at console.pdfn.dev |
timeout_error | Generation took too long | Simplify template or increase timeout |
network_error | Can’t reach server | Check connection, run npx pdfn dev |
render_error | React render failed | Check component for errors |
server_error | Server-side error | Retry, or contact support at console.pdfn.dev |
Common issues
Cannot connect to pdfn server
PDF generation timed out
Invalid API key
PDFN_API_KEY is set correctly in your environment. Keys start with pdfn_test_ or pdfn_live_. Get a new key at console.pdfn.dev.
render() called in the browser
render() uses react-dom/server which isn’t available in browsers. In Next.js, make sure this code runs in a Server Component or API route — not a Client Component.
Local fonts or images on edge runtimes
- Use Google Fonts instead of local font files
- Use remote URLs for images instead of local paths
- Pre-encode assets as base64 data URIs
- Switch to Node.js runtime (Vercel Serverless instead of Edge)
Client components not rendering
Templates that use"use client" components (like chart libraries) need a build plugin. Make sure @pdfn/next or @pdfn/vite is installed and configured:
React component threw during render
- Using async components (not supported in static rendering)
- Component threw an error during render
- Invalid React element passed to
render()
npx pdfn dev before calling generate().