Field Notes
Blog
Real bugs from production work across WordPress/Elementor, Next.js, and web animation. Written from first-hand experience, not theory.

A Page Is 200 in `curl` but the Browser Says couldn't load? RSC Stream 500 From `revalidateTag` During Render and an Exhausted Upstash Quota

1 Million Sanity CDN Requests Gone Before the Month Ended? `force-dynamic` Turns Every Child Fetch Into `no-store`
August 3, 2026
Still Burning 150k Sanity Requests a Day After the Cache Fix? 85% of It Was 4 `layout` Singletons
August 3, 2026
1,343 Pages Scraped, 1,343 Identical Bodies? The `article .entry-content` Cascade Grabbed a Sidebar Widget
August 3, 2026
`Module not found: Can't resolve '@sanity/ui'`? A Silent Turbopack Build Failure and a Deploy That Never Landed
August 3, 2026
WXR Import Fails With `PCDATA invalid Char value 18` and `Sequence ']]>' not allowed`? Sanitize the Bytes First
August 3, 2026
White Text Vanishes on a Light Background While Scrolling? Hardcoded Text Color Desyncs From the Morphing Background
July 31, 2026
`plan_limit_reached` 402 From Sanity Turned Every Page Into a Cloudflare 522 One Day After Launch
July 31, 2026
Route Only 500s in Production, `pnpm dev` Is Fine? `DYNAMIC_SERVER_USAGE` From an Empty `generateStaticParams` That Reads `searchParams`
July 31, 2026
GSAP Flip `absolute:true` Collapsed My Grid and Tiles Overlapped the Next Section?
July 30, 2026
Hero Text Overlapping the Phone Image on Mobile? `object-cover` Silently Re-centers When an `absolute` Layer Stretches Past `min-height`
July 30, 2026
`post_link` Filter Is Correct but Some Posts Stay at Root? Permalink Manager Lite Overrides at Priority 99
July 30, 2026
Swapped an Image and Video but the Client Still Sees the Old One? `Cache-Control: max-age` Keeps Same-Name Files Cached
July 30, 2026
`--site-colour` Stuck Dark After a Pinned Section? Pinning Shifts ScrollTrigger Coordinates
July 30, 2026
Background `<video>` Flashes Black Repeatedly in Chrome/Brave on Windows? DirectComposition Overlay Plane + Loop Encode
July 30, 2026
The Seam Between a Hero `<video>` and the Photo Below Never Lines Up? Video Frames Are a Function of Time, Not Scroll
July 29, 2026
CV Bullets Pile Up at the Bottom of the PDF and Fail ATS Parsing? A `li::before` Hack Chrome Paints in a Late Pass
July 29, 2026
White Hero Text Vanishes on Fast Scroll-Up? `onEnter`/`onLeave` ScrollTrigger Callbacks Race and Strip `scene-dark`
July 29, 2026
New Block Theme Patterns Not Showing Up? WordPress Caches the Pattern List in a `site-transient` for a Week
July 26, 2026
Sections Permanently Hidden After `gsap.from()` + ScrollTrigger? The Inline `opacity:0` That Never Gets Cleared
July 26, 2026
Reveal Text Stuck at `opacity: 0.25`? Your i18n Engine Re-applies `innerHTML` and Detaches the Animated Nodes
July 26, 2026
WordPress Staging on a Subpath 301-Redirects to Production? Two Rewrite Blocks Stacked in `.htaccess`
July 26, 2026
`transform` Silently Dropped by the Browser? `calc()` Still References a Renamed CSS Variable
July 25, 2026
Abandoned Checkout Locks Booking Dates Forever? `booking_payment_failed` Fires With Zero Listeners
July 23, 2026
Booking Badge Stuck on Processing? `closest()` Returned the Button, Not the Card
July 23, 2026
New WordPress Theme but the Homepage Still Renders the Old Elementor Body? Elementor's `Page Layout` Bypasses the Template Hierarchy
July 23, 2026
Property Edit Page 500s Only During PHP Shutdown? `esc_textarea()` Got an Array `house_rules`, Not a String
July 23, 2026
`get_page_by_path('add-property')` Returns `null` for a Nested Child Page? Production Ballooned to 137 Duplicate Pages
July 23, 2026
HTML5 `pattern` Validation Breaks in Chrome with a `SyntaxError`? The `v` Flag Requires Escaping `(`
July 23, 2026
A Dead Email Domain Passes as a WordPress User? `is_email()` Only Checks Syntax, Not Deliverability
July 23, 2026
Uploaded Every Patched File but the Site Is Still Broken? LSCache Is Serving Stale HTML (`X-LiteSpeed-Cache: hit`)
July 23, 2026
A 1px Line Cuts Across the Hero, Only on WordPress Staging? The WP Staging Banner Shifts a Decorative `::before` Into the Viewport
July 23, 2026
Owner Listings Always Publish With Zero Photos? Upload Only Builds a Preview, the Publish Handler Skips `gallery`
July 23, 2026
Purged Every Cache but the Browser Still Loads Old CSS? The `?ver=` Query You Forgot to Bump
July 23, 2026
Checkout Always Redirects to the Homepage: `empty( $property['id'] )` Is Always `true` Because `get_property_data()` Has No `id` Key
July 22, 2026
Headings Have Real Dimensions but Are Invisible in Every Dark Section? A Global `color` Rule on `h1-h6` Blocks Inheritance
July 22, 2026
One Availability Toggle Wipes Every Block? A JSON String Meta Read as a PHP Array
July 22, 2026
Background Video Shows as a Colored Rectangle Against the Section? Chroma-Key With `ffmpeg` and Stop Hardcoding `#ffffff`
July 21, 2026
SVG Icon Renders `11×20` Instead of `20×20` in Elementor? Missing `width`/`height` Meets `flex-shrink`
July 21, 2026
Deploying an Elementor Page to Production Randomizes Every Element ID and Kills Custom CSS? The Template Library Import Trap
July 21, 2026
`IntersectionObserver` Never Fires on a 350vh Sticky Section? The Threshold Is Mathematically Impossible
July 21, 2026
Judge.me Review Widget Renders Nothing on the PDP? `data-widget='widget'` Should Be `data-widget='review'`
July 21, 2026
Warning `Undefined array key 'file'` in `wp-includes/media.php` on Every Render From `wp_insert_attachment` SVG
July 21, 2026
1.7 Million API Calls a Month With Zero Visitors: a 15-Second TTL Times Cache Fragmentation Times Bot Crawl
July 20, 2026
3 Ways I Failed to Center an Absolute Decoration in Elementor (and the 1 That Worked)
July 20, 2026
Elementor `background_bg_width` Missing From the CSS: the UI Says 'Custom', the Data Says 'initial'
July 20, 2026
Elementor Site Renders Unstyled After Importing Prod: WP Rocket RUCSS Inside a Local Studio Clone
July 20, 2026
The WP Rocket RUCSS Safelist Is Not Regex: `.elementor-3(.*)` Strips Your Entire Elementor CSS
July 20, 2026
Fear & Greed Index Stuck at 72 While the API Says 26: a Hardcoded Placeholder Hiding an Outage
July 18, 2026
`admin_init` Lockdown Silently Kills EVERY Front-End Form (0 Members Ever Registered)
July 17, 2026
Swapping a 176-Widget Elementor Page via REST: `_elementor_data` Is Not Exposed on Custom Post Types
July 17, 2026
Elementor v4 Container Set to `position: absolute` Stays in Flow? Containers Use Unprefixed Controls
July 17, 2026
Elementor v4 Flex Container `width: 296px` Renders Full Width? The `content_width` Gate
July 17, 2026
A Homemade Login Throttle Locks Out Real Users: Office IP Collateral From a Bot Spray
July 17, 2026
Square Wallet Button Keeps Coming Back Despite `display:none`? The SDK Injects It Late, Fight It With MutationObserver
July 17, 2026
`wp_mail` Dead on a Raw EC2: 'Could not instantiate mail function' and the Passwordless Google Workspace SMTP Relay
July 17, 2026
Settings Field Set to `0` Snaps Back to Default? `array_filter()` Drops Your Legit Zero
July 16, 2026
`ctx.drawImage` Throws `InvalidStateError` in Production but Not Locally? One Frame Is a 404
July 16, 2026
A ~24px White Strip Above a Full-Bleed Hero in a Block Theme? It's `--wp--style--block-gap`
July 16, 2026
Custom SplitText Renders a Literal `&` On Screen? You Are Reading `innerHTML`
July 16, 2026
View Transitions API Flashes and Animates on Every Back Button? The Opt-in Meta Hits Every Navigation
July 16, 2026
Wildcard 301 Redirect Across Hosts Turns Every Old URL Into a `404`? The Path Does Not Exist on the New Host
July 16, 2026
`wp_mail()` Silently Fails and Zero Emails Arrive? Your Managed Host Disabled PHP `mail()`
July 16, 2026
Cmd+K Search Returns "No matches" for Almost Every Keyword in Prod? The Index Was Built From Placeholders
July 15, 2026
`max-height: 0` Accordion Still Leaks a Sliver? Padding Sneaks Through `overflow: hidden`
July 15, 2026
Sanity Panel 500s in Prod, API Returns 400 `score() function received unexpected expression`? boost() Only Takes Simple Predicates
July 14, 2026
Article Page Is 200 in `pnpm dev` but 500 in Production? `DYNAMIC_SERVER_USAGE` From a Nested Server-Component Fetch
July 14, 2026
`next/font` Not Applying in Tailwind v4? `var()` Inside `@theme` Resolves at Build Time, Not Runtime
July 14, 2026
Next.js `generateSitemaps` Returns an Empty `<urlset>` Instead of a `<sitemapindex>`? The Convention Can't Emit One
July 14, 2026
Your Next.js `not-found` Page Returns HTTP 200? The Soft-404 That Won't Let Google Deindex
July 14, 2026
Production Serving Stale HTML After a Deploy? A `Cannot read properties of undefined (reading 'toFixed')` Was Crashing SSR
July 14, 2026
Product Cards Shrink to 240px on Desktop? A `display:none` Grid Item Breaks Column Auto-Placement
July 13, 2026
Inline Video Won't Autoplay on iPhone Safari? H.264 High Profile Is Rejected and the `autoplay` Attribute Is Blocked
July 13, 2026
`next dev` Is Green but `next build` Fails Type-Check: Dynamic Element With `ref` and `children` Typed `never`
July 13, 2026
Next.js 16 Works on `localhost` but HMR Dies Over a LAN IP? Add `allowedDevOrigins`
July 13, 2026
`overflow-y: auto` on `body` Silently Kills Every `position: sticky`? The Body Became a Scroll Container
July 13, 2026
`next dev` Turbopack Crashes With `invariant expected layout router to be mounted` on One Machine Only? A `node_modules` Junction Is the Culprit
July 13, 2026
`shopify theme push --theme=<ID>` Landed on the Wrong Store? The CLI's Store Context Is Sticky
July 12, 2026
`{# ... #}` Comments Leaking as Text on Your Shopify Product Page? Liquid Has No Such Syntax
July 10, 2026
Pushing to Shopify Wiped the Client's Admin-Uploaded Image? Pull `templates/*.json` Before You Edit
July 10, 2026
`shopify theme push` Says Success But Staging Never Changes? The `order` Array Has a 25-Entry Cap
July 10, 2026
Shopify Theme Upload Rejected With `theme_author too long` and `default can't be blank`? Hidden Schema Limits Surface at Push
July 10, 2026
Deleted a Section From Shopify `templates/index.json` but It Keeps Coming Back? `order` and `sections` Are Coupled
July 10, 2026
Text With `text-[oklch(0.97_0.01_260/0.80)]` Renders With No Color in Tailwind v4? The Trailing Zero Means the Class Never Compiles
July 10, 2026
Empty Button Icons and 404 Images After an Elementor Migration? The Attachment ID Remap of `_elementor_data` Must Be Recursive
July 9, 2026
Footer Columns Overflow the Viewport on Mobile but Desktop Is Fine? Legacy `px` Margins in Elementor Silently Cascade to Every Breakpoint
July 9, 2026
ScrollTrigger `pin: true` + `scrub` Section Jitters on Mobile but Desktop Is Silky? Lenis and the URL Bar Are Fighting Over Scroll
July 9, 2026
Card Stuck in Its `:hover` State on a Playwright Mobile Viewport? That's a Phantom Hover From the Virtual Mouse, Not a Site Bug
July 9, 2026
SVG Icons Squished, Circles Rendering as Ellipses in Some Slots? `preserveAspectRatio` `none` Stretches Non-Uniformly
July 9, 2026
Built a Custom Gutenberg Block but It Never Shows Up in the Inserter? The Site Runs Classic Editor
July 8, 2026
Category Pages Showed `00 stories` Despite Published Posts? A Leftover Seeder `meta_query` Was Excluding All Real Content
July 8, 2026
Elementor Sections Always 20px Narrower Than the Figma Design? Containers Ship a Default `padding: 10px`
July 8, 2026
Saving a Post Returns a 502? Synchronous `media_handle_sideload()` Blows Past the Edge Proxy Timeout
July 8, 2026
Regex Search-Replace on `_elementor_data` Turns Text Widgets Into Lorem Ipsum? The JSON Is Corrupted, Elementor Falls Back to Its Placeholder
July 8, 2026
Photos Blurry on Retina but Sharp on a 1080p Monitor? Elementor's `Custom` Image Size Serves a 1x Asset
July 8, 2026
WAF Blocks Your `curl` Scraper With 403s and JS Challenges? Move Extraction Into the Logged-In Browser With a JSON-LD Bookmarklet
July 8, 2026
Shortcode Layout Inside `display: grid` Explodes on the Live Site? `wpautop` Injects Empty `<p>` Tags as Phantom Grid Items
July 8, 2026
WordPress Importer Dies Mid-Run With Cloudflare `524 A Timeout Occurred`? The 100-Second Cap Is Real, Rebuild It as a Batched State Machine
July 7, 2026
The EUR/USD Currency Switch Did Nothing? The Prices Were Stored as Pre-Formatted Strings Like `'€450'`
July 7, 2026
Editing a Theme's Source JS Changes Nothing in the Browser? The Enqueue Silently Loads a Stale `.min.js` From `dist`
July 7, 2026
Cleanup Script Dies With `Call to undefined function` on `require 'wp-load.php'`? Wipe WordPress via Raw `mysqli` Instead
July 7, 2026
`update_option` Migration Succeeded but the Frontend Still Shows the Old Value? One Setting Stored Under Two Option Keys
July 7, 2026
`xmlrpc.php` Still Returns 200 After `add_filter('xmlrpc_enabled', '__return_false')`? That Filter Does Not Kill XML-RPC
July 7, 2026
`new FormData(...)` Throws “not of type HTMLFormElement”: Your Selector Grabbed the Wrapper DIV, Not the FORM
July 6, 2026
Refund Fails With 422 “amount is required” Though the Docs Say It's Optional, Always Send `amount.value`
July 6, 2026
A Google Sign-In That Doesn't Verify the JWT Signature = Auth Bypass: Anyone Can Claim to Be Anyone
July 6, 2026
Site URL Migration With Better Search Replace Misses Gutenberg Blocks, You Need the Escaped `\/` Form
July 5, 2026
Buttons “Dead” Only on the Homepage: A Global Click Handler in a JS File Not Enqueued There
July 5, 2026
Features That Are “Done” but Silently Dead: JS↔REST Contract Drift
July 3, 2026
Utility Classes Lose to `.prose-dark h4` by Specificity, Wrap Prose Rules in `:where()`
July 3, 2026
Swapped One Color `--token` but the Old Color Persists: Hardcoded Hex in JS Bundles & SVG
July 3, 2026
Tailwind v4 `@source` Resurrects Classes You Already Deleted, Exclude the Seed/Import Folder
July 3, 2026
Two Equal-Height Columns Without JavaScript: Grid Stretch + Flex Distribute
July 2, 2026
Leaflet Map Controls Leak Above Your Sticky Header, Fix It With a Stacking Context
July 2, 2026
`overflow-x: hidden` Kills `position: sticky` on iOS Safari, Switch to `overflow-x: clip`
July 2, 2026
Tailwind v4 Preflight Kills WordPress `alignleft`/`alignright`, Restore It Without `clear:both` on Headings
July 2, 2026
Gradient Text With `background-clip: text` Clips the Descenders (g, p, q, y), Here's the Fix
July 1, 2026
A GoHighLevel Form Goes Invisible (White-on-White) After Flipping the Theme Dark↔Light
July 1, 2026
wp-admin Acting Haunted (Expired Nonce, AJAX Not JSON, Sidebar Vanishing)? That's CDN/Edge Cache, Not a Theme Bug
July 1, 2026
Rendering Page Content Without Elementor's Wrapper: Bypassing `the_content()` (and Why `remove_filter` Fails)
July 1, 2026
Your CSS Class Toggle Won't Show the Element? The HTML `hidden` Attribute Is `display:none`
July 1, 2026
Deployed + Cleared WP Rocket but the Public Still Sees the Old Version? Cloudflare Is Caching HTML for a Year
July 1, 2026
Checking a WordPress Site With `curl` Returns Empty Placeholders? WP Rocket Strips Content for Unknown UAs
June 30, 2026
Naming a 2nd WP_Query `$more`/`$page` Collides With a WordPress Global, a Fatal That Masquerades as Out-of-Memory
June 30, 2026
Your PHP Filter Runs but the Page Is Empty? A Theme Missing `page.php`/`search.php` Silently Falls to `index.php`
June 29, 2026
Renaming Slugs + Changing URL Structure in One Deploy: Why Your Redirect 404s Instead of 301s
June 29, 2026
A Custom Post Type at the Root URL (`/title/`) Falls Through to the Homepage, Fix It With Per-Slug Rewrite Rules
June 28, 2026
“Works on My Machine”, Because You Checked as Admin: The Public Render Differs From the Logged-in One
June 26, 2026
`$wpdb->prepare()` With an Array Param Returns Empty on WordPress 7.0
June 26, 2026
Auditing a 3-Hop 301 Redirect Chain That Was Hiding Across Four Mechanisms
June 25, 2026
The `get_theme_mod($id, $fallback)` Trap: The Fallback Arg Silently Overrides Your Registered Default
June 25, 2026
PHP 8 Fatal: 'Attempt to read property on array' When a Getter Returns an Array
June 25, 2026
Lenis in the <head> Threw 'document.body is null' and Blocked Render, Move It to the Footer
June 25, 2026
Reusing `$x` Silently Wiped the Content When Porting React to PHP
June 25, 2026
Adding a require_once to a Live functions.php Locked Me Out of wp-admin, and the Recovery Tool With It
June 25, 2026
Smart Quotes (“ ”) Sneaking Into PHP Took Down the Site: A Baffling Parse Error
June 25, 2026
Class 'WP_List_Table' not found: How One Always-Loaded File 500s Your Entire Frontend
June 25, 2026
A Page-Scoped CSS Override Silently Beat My 'Global' Component on Specificity
June 23, 2026
Two add_rewrite_rule Calls With the Same Regex Don't Chain, the Second Overwrites the First
June 22, 2026
An Inline onclick stopPropagation Silently Broke Every Delegated Handler
June 22, 2026
Scroll-Reveal Content Stays Invisible When IntersectionObserver Never Fires
June 22, 2026
strtoupper Turned a WordPress Category Chip Into 'BANKING & NEOBANKS'
June 22, 2026
Tailwind v4 Compiles at Build Time, My New Classes (pl-16, h-7) Did Nothing in Production
June 22, 2026
Tailwind v4 Tree-Shook My CSS Variable → Text Shipped Invisible White in Production
June 21, 2026
A Duplicate `style=` Attribute on One Element, The Browser Silently Keeps Only the First
June 20, 2026
Elementor POPOVER_TOGGLE: Saving 'yes' Gives Class e-yes, and Your Transform Never Fires
June 19, 2026
A Nested `<a>` Inside Another `<a>` Silently Collapsed My Card Grid
June 19, 2026
wp_localize_script Overwrites the Global (It Doesn't Merge), How It Wiped My Search Index
June 19, 2026
WP Rocket 'Delay JavaScript Execution' Breaks Your Header Dropdown, Correct Code That Never Runs
June 19, 2026
Elementor Changes Not Showing Even After Clearing Cache, The Real Cause
June 18, 2026
ScrollTrigger Below the Hero Breaks After Assets Load? GSAP pin vs CSS sticky
June 18, 2026
Next.js Environment Variable Undefined in Production? Here's Why
June 18, 2026
PHP 8 Bug: 'floatval' as a sanitize_callback Causes a Fatal Error in WordPress
June 18, 2026
update_post_meta Silently Strips Your JSON Slashes (and Hides the Bug for Days)
June 18, 2026
Mobile Menu & Dropdowns Break After Enabling WP Rocket? The RUCSS Trap
June 18, 2026