Midnight MarketingDocs

Troubleshooting#

Symptom-led recovery, fastest check first.

Start here#

Run the full verification. It reproduces most reported problems locally, because it builds and exercises the real artefact:

npm test

If that passes and production still misbehaves, the problem is in the deployment or in DNS rather than in the source.

Build and dependency problems#

Symptom Check Recovery
npm install fails on an engine check node --version Install Node 22.13.0 or newer
Build fails with a type error The build output — it names the file and line Fix the type; the assertions never ran
Build succeeds locally, fails on the platform The builder's Node version Align it with the engines requirement
Development server has no hot reload Whether native filesystem events are available Force polling by setting CODEX_SANDBOX=seatbelt, or restart the server

Failing assertions#

Symptom Check Recovery
A copy assertion fails Whether you edited that section Restore the claim, or change copy and assertion together
A retired-claim assertion fails Whether a withdrawn claim came back Remove it — see Editing page content
The structured-data assertion fails Whether the JSON-LD block still exists Restore the block; edit its contents instead of removing it
A header assertion fails Whether the worker still sets that header See Response headers
The redirect assertion fails The hostname comparison See Domains and redirects

Production problems#

Symptom Check Recovery
Deployment never becomes healthy Deploy logs for an error rendering / The health check requests /; fix the route and redeploy
Stale content after deploying Request with curl rather than a browser Confirm the deployment promoted, then redeploy
Headers present locally, absent in production Whether a static response is served ahead of the worker Confirm the deployment is current and the platform is not intercepting
www no longer redirects The response status and Location for the www hostname See Domains and redirects
Social preview letterboxed or blank Whether the shipped image matches its declared dimensions Update image and declared dimensions together

A blocked asset#

An external image, font, script or stylesheet will be blocked by the Content Security Policy. The policy allows same-origin resources, data: images, and form submissions to GitHub.

Self-host the asset. Widening the policy is a security decision and should not be made to unblock a content change. See Response headers.

Preserve evidence before you retry#

If a deployment failed and you are about to redeploy, capture the build and deploy logs first. Redeploying replaces them, and an intermittent failure is much harder to diagnose from a second, cleaner run.