Claude-code-plugins framer-common-errors
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/framer-pack/skills/framer-common-errors" ~/.claude/skills/jeremylongshore-claude-code-plugins-framer-common-errors && rm -rf "$T"
manifest:
plugins/saas-packs/framer-pack/skills/framer-common-errors/SKILL.mdsource content
Framer Common Errors
Overview
Diagnostic reference for common Framer plugin, component, and Server API errors with actionable fixes.
Error Reference
Plugin Not Appearing in Editor
Cause: Dev server not running or plugin not registered.
Fix:
npm run dev # Start Vite dev server # Then in Framer: Plugins > Development > select your plugin
framer is not defined
framer is not definedCause: Calling
framer API outside the Framer editor iframe context.
Fix: The
framer global from framer-plugin only works inside the editor. For server-side access, use framer-api package instead.
// Plugin (editor): import { framer } from 'framer-plugin'; // Server (headless): import { framer } from 'framer-api';
Component Renders Blank on Canvas
Cause: Runtime error in component code (swallowed by Framer).
Fix: Open Framer's browser console (right-click > Inspect) and check for errors. Common causes:
- Missing
on componentexport default - Undefined props without defaults
- Fetch errors from blocked CORS requests
addPropertyControls
Not Showing
addPropertyControlsCause: Called on wrong component or wrong import.
Fix:
// Must import from 'framer', not 'framer-plugin' import { addPropertyControls, ControlType } from 'framer'; // Must be called AFTER the component definition export default function MyComponent(props) { /* ... */ } addPropertyControls(MyComponent, { /* ... */ });
Code Override Not Applying
Cause: Override function not returning correct shape.
Fix: Overrides must return an
Override type object (Framer Motion props):
import { Override } from 'framer'; // Correct — returns Override export function MyOverride(): Override { return { whileHover: { scale: 1.1 } }; } // Wrong — missing return type, or returning JSX
Server API WebSocket connection failed
WebSocket connection failedCause: Invalid API key, wrong site ID, or network blocking WSS.
Fix:
# Verify API key is valid echo $FRAMER_API_KEY | head -c 20 # Should start with 'framer_sk_' # Verify site ID echo $FRAMER_SITE_ID # Test WebSocket connectivity curl -s https://api.framer.com/health || echo "Cannot reach Framer API"
CMS Collection field type invalid
CMS Collection field type invalidCause: Using unsupported field type string.
Fix: Valid types:
string, formattedText, number, boolean, date, link, image, color, enum, slug
CORS Errors in Code Components
Cause: Fetch API in components blocked by browser CORS policy.
Fix: Use a CORS proxy or ensure your API returns proper
Access-Control-Allow-Origin headers. Framer components run in the browser — same CORS rules apply.
Quick Diagnostic
# Check if Framer API is reachable curl -s https://api.framer.com/health # Verify npm packages npm list framer-plugin framer-api framer # Check for common issues in code grep -r "from 'framer'" src/ --include="*.tsx" | head -10
Resources
Next Steps
For debugging tools, see
framer-debug-bundle.