inngest-v3-v4-migration

Migrates TypeScript codebases from Inngest SDK v3 to v4 APIs.

Updated Feb 27, 2026
One-click install
npx skills add https://github.com/firstaxel/neon --skill inngest-v3-v4-migration-firstaxel
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: inngest-v3-v4-migration
Source: https://github.com/firstaxel/neon/tree/main/.agents/skills/inngest-v3-v4-migration
Command: npx skills add https://github.com/firstaxel/neon --skill inngest-v3-v4-migration-firstaxel

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Upgrading an existing TypeScript codebase from Inngest SDK v3 to v4 involves many breaking changes—moved triggers, removed EventSchemas, relocated serve options, rewritten step.invoke calls, and a new realtime API—and mixed v3/v4 usage causes confusing runtime errors. ## Core Features & Use Cases - Usage Detection: Scans the repository with ripgrep to classify it as v3-only, mixed v3/v4, or mostly migrated before editing. - Ordered Mechanical Migration: Applies changes in a controlled sequence covering package versions, client construction, serve options, createFunction triggers, eventType/staticSchema schemas, step.invoke references, realtime APIs, and checkpointing. - Verification Workflow: Runs typechecks, tests, and the Inngest dev server to confirm function discovery and event delivery. - Use Case: A team upgrades to inngest@4 and hits "signing key required" errors and broken @inngest/realtime imports; this skill walks through each breaking change and verifies the result. ## Quick Start Ask the assistant to upgrade this repository from Inngest v3 to v4 and fix any mixed v3/v4 API usage.

Frequently Asked Questions about inngest-v3-v4-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate from Inngest v3 to v4?▼

Upgrade the inngest package to v4, then apply changes in order: move serve options like signingKey and baseUrl onto new Inngest(), move triggers into createFunction options, replace EventSchemas with eventType/staticSchema, rewrite step.invoke string IDs, and migrate realtime to native v4 APIs.

How do I replace EventSchemas in Inngest v4?▼

Replace centralized EventSchemas with per-event definitions using eventType() with a Zod schema or staticSchema<T>() for plain types. Note that staticSchema expects a type alias, so convert interfaces to types before migrating.

Why does Inngest v4 say a signing key is required?▼

Inngest v4 defaults to Cloud mode, which requires a signing key. Set INNGEST_DEV=1 for local development or configure INNGEST_SIGNING_KEY for production instead of hardcoding isDev: true in source.

Does Inngest v4 still support the @inngest/realtime package?▼

No, v4 replaces @inngest/realtime and realtimeMiddleware with native realtime in the inngest package via subpaths like inngest/realtime and inngest/react. Mixing the v3 realtime package with inngest@4 causes errors such as "Cls is not a constructor".

Why does step.invoke fail with a string function ID in Inngest v4?▼

Inngest v4 no longer accepts raw string function IDs in step.invoke. Pass an imported function reference directly, or use referenceFunction() with the appId and functionId for cross-app invocations.