Skip to content

fix: restore OG image generation in production (pin @takumi-rs to 0.62.8)#649

Merged
snario merged 1 commit into
mainfrom
fix/og-image-runtime-crash
Jul 6, 2026
Merged

fix: restore OG image generation in production (pin @takumi-rs to 0.62.8)#649
snario merged 1 commit into
mainfrom
fix/og-image-runtime-crash

Conversation

@snario

@snario snario commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Problem

Since the Jul 2 dependency bump (#631) took @takumi-rs/* from 0.62.8 → 1.8.7, every /api/og request in production returns 200 with an empty body — social cards have had no image. The render crashes the lambda's Node process (fatal: Node.js process exited with exit status: 128 in Vercel logs) while working fine locally on macOS under Node 22, 24, and 26.

Bisected across production deployments (with the automation-bypass header):

deployment commit /api/og
pny5kssqb (Jul 2, pre-#631) c1b45d7 200, 57KB image
o6xs10ty9 (Jul 3, #631) 0e58034 200, 0 bytes
current prod 6b14228 200, 0 bytes

Fix

  • Pin @takumi-rs/image-response and @takumi-rs/wasm back to 0.62.8. The 0.62.8 options API is compatible with the current handler (its ImageResponseOptions also extends ResponseInit, so the cache header from fix: serve correct SEO/social-card head tags on marketing and blog pages #648 still applies).
  • Set format: 'png' explicitly — takumi's default output changed across versions (0.62.8 emits WebP by default) and some social crawlers (notably Facebook) don't render WebP og:images.
  • Dependabot ignore for @takumi-rs/* with an explanatory comment, so the pin isn't silently re-bumped before a fixed release is verified against a production deployment.

Verification

Local build + dist/preview.js: /api/og?... returns 200 image/png, 92KB, correct 1200×657 card (pill breadcrumb, title, logo), cache-control: public, max-age=31536000, immutable. 130 vitest + biome + tsgo green.

🤖 Generated with Claude Code

…to 0.62.8

The Jul 2 dependency bump (#631) took @takumi-rs/image-response and
@takumi-rs/wasm from 0.62.8 to 1.8.7. Since that deploy, every /api/og
request in production returns 200 with an empty body: the render crashes
the lambda's Node process (exit status 128) while working fine locally
on macOS under Node 22/24/26. Bisected across production deployments —
the deploy before #631 serves real images, the #631 deploy does not.

Pin both packages back to 0.62.8 (verified rendering locally and the
options API is compatible), set format: 'png' explicitly since takumi's
default output format changed across versions and some social crawlers
don't render WebP, and add a dependabot ignore so the pin isn't silently
re-bumped before a fixed release is verified against production.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tempo-docs Ready Ready Preview, Comment Jul 6, 2026 3:17pm

Request Review

@snario snario merged commit 5d9054c into main Jul 6, 2026
10 checks passed
@snario snario deleted the fix/og-image-runtime-crash branch July 6, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant