fix: disable Sentry webpack wrapper in dev mode

The withSentryConfig() wrapper caused recurring worker.js crashes
in Next.js dev mode (vendor-chunks/lib/worker.js MODULE_NOT_FOUND).
This crashed the server mid-request during image generation and
other long-running operations.

Fix: only apply withSentryConfig in production. In dev mode, use
the raw Next.js config. Sentry instrumentation also gated to
production only.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-03-23 18:28:02 +01:00
parent e766309c6c
commit 05fd0e21ea
2 changed files with 24 additions and 15 deletions
+7 -5
View File
@@ -45,10 +45,12 @@ const nextConfig: NextConfig = {
}, },
}; };
export default withSentryConfig(nextConfig, { // Only wrap with Sentry in production — the worker.js crash in dev mode
// (vendor-chunks/lib/worker.js MODULE_NOT_FOUND) makes the dev server unstable
export default process.env.NODE_ENV === "production"
? withSentryConfig(nextConfig, {
silent: true, silent: true,
sourcemaps: { sourcemaps: { disable: true },
disable: true,
},
telemetry: false, telemetry: false,
}); })
: nextConfig;
+10 -3
View File
@@ -1,6 +1,7 @@
import * as Sentry from "@sentry/nextjs";
export async function register() { export async function register() {
// Only load Sentry in production — the worker.js crash in dev mode
// (vendor-chunks/lib/worker.js MODULE_NOT_FOUND) makes the dev server unstable
if (process.env.NODE_ENV === "production") {
if (process.env.NEXT_RUNTIME === "nodejs") { if (process.env.NEXT_RUNTIME === "nodejs") {
await import("../sentry.server.config"); await import("../sentry.server.config");
} }
@@ -8,5 +9,11 @@ export async function register() {
await import("../sentry.edge.config"); await import("../sentry.edge.config");
} }
} }
}
export const onRequestError = Sentry.captureRequestError; export async function onRequestError(...args: unknown[]) {
if (process.env.NODE_ENV === "production") {
const Sentry = await import("@sentry/nextjs");
(Sentry.captureRequestError as Function)(...args);
}
}