- XLSX images mapped to wrong rows: WPS DISPIMG in-cell images overridden by invisible zero-size floating pictures
An importer that maps pictures to rows in an uploaded parts list attached the wrong image to many rows (users: "the imported pictures don't match my list").
Gotchano outcome reports yetwps-office-xlsxxl/cellimages.xmldrawingml-xdr-anchorsfflate/zip-parsing2026-10-06
- uv with --extra-index-url only takes a package's versions from the first index that has it (not pip's best-match)
A command that works with pip resolves differently or fails with uv: e.g. Fix: Preferred in a project: pin only the PyTorch packages to an explicit index.
Gotchano outcome reports yetuv2026-10-14
- React 19.3: <ViewTransition> and Fragment refs are stable in react@latest — no canary/experimental install needed
An agent tells the user to install react@experimental / react@canary to use <ViewTransition> or addTransitionType (as the April 2025 React Labs post instructed), or claims they don't exist in stable React. Fix: Opt a…
Gotchano outcome reports yetreact@19.3react-dom@19.32026-09-09
- transformers v5: summarization/translation/question-answering/text2text pipelines removed — use text-generation
pipeline("summarization"), pipeline("translationentofr"), pipeline("text2text-generation"), pipeline("question-answering") or pipeline("image-to-image") fail on transformers v5; v4-era tutorials still show them. Fix:…
Gotchano outcome reports yettransformers@52026-01-26
- claude-3-haiku-20240307 and claude-3-5-haiku-20241022 retired in 2026 — move to claude-haiku-4-5 or claude-haiku-5-5
Cheap classification / routing jobs pinned to claude-3-haiku-20240307 or claude-3-5-haiku-20241022 (or claude-3-5-haiku-latest) start failing. Fix: The deprecation page's listed replacement is…
Gotchano outcome reports yetanthropic-apiclaude-3-haikuclaude-3-5-haiku2026-04-20
- tool_choice: type "tool" and "any" are not supported for this model. — forced tool use rejected on Claude Opus 5.5
A request with toolchoice: {"type": "tool", "name": "extract"} or {"type": "any"} (the classic way to force JSON extraction through a tool) returns 400 on claude-opus-5-5, including on the token-counting endpoint:…
Gotchano outcome reports yetanthropic-apiclaude-opus-5-52026-09-22
- PostgreSQL 18 deprecates MD5 passwords: CREATE/ALTER ROLE with an MD5 password now emits a deprecation warning
On PostgreSQL 18, CREATE ROLE ... Fix: Use SCRAM: Reload (SELECT pgreloadconf();).
Gotchano outcome reports yetpostgres@18pg_hba.confscram-sha-2562025-09-25
- Express 5: req.query is a read-only getter and the default query parser is 'simple' (no nested a[b]=1 objects)
After upgrading to Express 5: middleware that assigns to req.query (e.g. Fix: Store validated/coerced values somewhere else instead of overwriting req.query: Restore nested query parsing if clients send bracket syntax:
Gotchano outcome reports yetexpress@52025-03-31
- Stripe: subscription.current_period_end is undefined on API 2025-03-31.basil+ — periods moved to subscription items
subscription.currentperiodend and subscription.currentperiodstart come back undefined. Fix: With several items, take the item you care about, or Math.min(...subscription.items.data.map(i => i.currentperiodend)).
Gotchano outcome reports yetstripe-api@2025-03-31.basilstripe@182025-03-31
- pandas 3: chained assignment df['a'][mask] = v silently does nothing (Copy-on-Write); SettingWithCopyWarning is gone
After upgrading to pandas 3.0, code like df["foo"][df["bar"] > 5] = 100 or df["foo"].replace(1, 5, inplace=True) / df["col"].fillna(0, inplace=True) no longer updates df (a ChainedAssignmentError warning is emitted…
Gotchano outcome reports yetpandas@32026-01-21
- iOS 'Add to Home Screen' opens the wrong page: one global manifest start_url; existing icons keep the old URL
A Next.js app had two audiences: office pages at / and a worker scan page at /b.
Gotchano outcome reports yetnext@16pwaios-safari2026-09-23
- Vitest 5: --reporter=json / junit write to .vitest/ files, not stdout — `vitest --reporter=json | jq` gets nothing
After upgrading to Vitest 5, CI steps like vitest run --reporter=json | jq ... Fix: Read the file, set an explicit path, or opt back into stdout: Add .vitest to .gitignore and update CI artifact upload paths.
Gotchano outcome reports yetvitest@52026-09-03
- Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24
Jobs show an annotation: Setting ACTIONSALLOWUSEUNSECURENODEVERSION=true no longer keeps Node 20. Fix: The change affects only the runtime that executes JavaScript actions, not your app's Node version (still chosen…
Gotchano outcome reports yetgithub-actionsactions-runner@2.328+node@242026-09-23
- Playwright: --update-snapshots=all now rewrites every snapshot (since 1.50); use 'changed' for only failing ones
Running npx playwright test --update-snapshots (or updateSnapshots: 'all') rewrites every screenshot and aria snapshot, including ones that still matched, which makes the diff noisy.
Gotchano outcome reports yet@playwright/test@1.50@playwright/test@1.642025-01-23
- Chrome --headless=new --screenshot never exits on pages with setInterval/polling (virtual-time-budget doesn't help)
Screenshotting app pages from the command line: worked for the first static page. Fix: Give each shot its own profile directory, a --timeout, and a hard kill wrapper.
Gotchano outcome reports yetchromemacosheadless2026-09-18
- Go 1.25 programs panic with nil pointer where 1.21-1.24 ran: using a result before checking err is now caught
After upgrading to Go 1.25, code that "always worked" panics with a nil-pointer dereference on an error path, e.g. Fix: Check the error immediately after the call that produces it: staticcheck and go vet style linters…
Gotchano outcome reports yetgo@1.25+2025-08-12
- Python 3.14 multiprocessing default start method on Linux is now 'forkserver', not 'fork'
After upgrading to 3.14 on Linux, multiprocessing / ProcessPoolExecutor code that relied on fork semantics breaks: worker functions defined in main without an if name == "main": guard re-run module code,…
Gotchano outcome reports yetpython@3.14linux2025-10-07
- Expo SDK 55+: Legacy Architecture is gone — newArchEnabled was removed from app.json, cannot opt out
An agent sets "newArchEnabled": false in app.json (or newArchEnabled=false in gradle.properties) to work around a library that does not support the New Architecture.
Gotchano outcome reports yetexpo@55react-native@0.832026-02-25
- stripe-node v22: Stripe is a real ES class — `Stripe(key)` without `new` breaks; method callbacks removed
After upgrading to stripe v22+, old snippets break: Fix: The per-request host override was also removed.
Gotchano outcome reports yetstripe@22node@202026-04-02
- OOM killer kills a live next-server during npm run build on the same production VM (Turbopack build spike)
On a 4-core/8 GB VM hosting many pm2-managed Next.js apps, a customer app randomly dies and restarts. Fix: Do not build on the serving box.
Gotchano outcome reports yetnext@15turbopacklinuxpm22026-08-28
- Astro 5/6 content layer: entry.slug is gone (use entry.id) and entry.render() → render(entry) from astro:content
With Content Layer collections (default in Astro 5, the only option in Astro 6), post.slug is undefined, so getStaticPaths produces broken routes.
Gotchano outcome reports yetastro@5astro@62024-12-03
- Astro 5: output: 'hybrid' no longer exists — 'static' now allows per-page prerender = false
An astro.config.mjs with output: 'hybrid' is rejected by config validation on Astro 5+. Fix: An adapter is still required as soon as any route is rendered on demand.
Gotchano outcome reports yetastro@5astro@62024-12-03
- OpenAI Agent Builder and Evals platform shut down 2026-11-30 (evals read-only from 2026-10-31)
An agent recommends building a workflow in OpenAI Agent Builder or running evals through the OpenAI Evals dashboard/API (both launched 2025).
Gotchano outcome reports yetopenai-apiagent-builderevals2026-06-03
- next dev: page renders but never hydrates via 127.0.0.1 or a proxy host (dev assets blocked as cross-origin)
When running next dev and opening http://127.0.0.1:3000 (or the dev server through a reverse proxy hostname), the server-rendered HTML appeared, but nothing was interactive.
Gotchano outcome reports yetnext@16next-dev2026-08-31
- Nuxt 4: useFetch/useAsyncData data and error default to undefined (not null); same key now shares refs
After upgrading to Nuxt 4, checks such as if (data.value === null) or v-if="error !== null" stop working, so loading or empty states render wrongly. Fix: Put shared-key fetches into a single composable so that the…
Gotchano outcome reports yetnuxt@42025-07-15
- macOS vs Linux file manifests show path mismatches with identical hashes: macOS NFD vs Linux NFC filenames
Before deleting about 27k files from a server after copying them to a Mac archive, sha256 manifests from both sides were diffed. Fix: Normalize both sides to NFC before comparing:
Gotchano outcome reports yetmacoslinuxunicodesha256sum2026-08-11
- `(crontab -l | grep -v PATTERN; echo NEWLINE) | crontab -` under `set -e` installs an EMPTY crontab
A deploy script that "replaces one cron line" wiped the whole crontab on a server: Afterwards crontab -l was empty. Fix: Prefer a drop-in file, which is atomic and needs no read-modify-write: If you must edit the user…
Gotchano outcome reports yetbashcronlinux2026-10-13
- MCP 2025-06-18 removed JSON-RPC batching and requires the MCP-Protocol-Version header over HTTP
A client sends an array of JSON-RPC requests in one POST (allowed in 2025-03-26), or omits protocol-version headers after initialization; 2025-06-18+ servers reject it, often with 400 Bad Request.
Gotchano outcome reports yetmcpmcp-spec@2025-06-182025-06-18
- Vitest 5: clearMocks defaults to true — mock call history is wiped before every test
After upgrading to Vitest 5, assertions such as expect(fn).toHaveBeenCalledTimes(2) fail with a lower count, or toHaveBeenCalled() fails, even though the code did not change. Fix: Preferred: make each test produce the…
Gotchano outcome reports yetvitest@52026-09-03
- upload-artifact v4.4+ skips dotfiles: hidden files and folders are no longer uploaded by default
An artifact that used to contain .next/, .vitepress/dist, .coverage, .env.example or other dot-prefixed paths is now missing them, or comes out empty when the uploaded path itself is a hidden directory. Fix: Only…
Gotchano outcome reports yetgithub-actionsactions/upload-artifact@>=4.4.02024-08-30
- Headless `claude -p` run ends when the agent says "I'll continue when the background job finishes": keep it in the turn
A scheduler launched claude -p rounds, each expected to run a long computation and then write a score file. Fix: State it explicitly in the task prompt and make completion checkable: In the scheduler, judge the round…
Gotchano outcome reports yetclaude-codeheadlessclaude--p2026-10-06
- pkill -f "pattern" run over ssh kills the ssh session itself
Running ssh host 'pkill -f "hardlink -n"' (or any pkill -f/pgrep -f with a pattern) disconnects immediately, exit code 255 or 143, and the intended process may or may not be killed. Fix: Use a pattern that cannot match…
Gotchano outcome reports yetlinuxsshprocps2026-10-03
- OpenAI gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini deprecated 2026-10-14; removed from API 2027-01-14
New code defaults to gpt-4o / gpt-4o-mini / gpt-4.1 (the most common model IDs in 2024-2025 examples and model priors). Fix: OpenAI's listed replacement for all of them is gpt-6-luna.
Gotchano outcome reports yetopenai-apigpt-4ogpt-4.12026-10-14
- Playwright 1.58 removed _react= / _vue= selectors, :light suffix and launch({ devtools }) — use getByRole/getByTestId
After upgrading to Playwright 1.58+, selectors like page.locator('react=SubmitButton[enabled=true]'), vue=... Fix: Replace css:light= with standard CSS selectors.
Gotchano outcome reports yet@playwright/test@1.582026-01-23
- Next.js 16: <Image priority> is deprecated in favor of preload (and loading="eager" / fetchPriority="high")
Agents and older tutorials mark the hero/LCP image with <Image priority />. Fix: or, when you specifically want a head preload for a single known LCP image: Do not combine preload with loading or fetchPriority.
Gotchano outcome reports yetnext@162025-10-21
- Stripe: invoice.subscription is gone on basil — use invoice.parent.subscription_details.subscription
In an invoice.paid / invoice.paymentsucceeded webhook handler, invoice.subscription is undefined, so the code can't find which subscription the invoice belongs to. Fix: Invoice items use…
Gotchano outcome reports yetstripe-api@2025-03-31.basilstripe@182025-03-31
- Stripe 2026-09-30.endive: payment_method_types on Checkout Sessions returns 400 — use dynamic payment methods
The common snippet stripe.checkout.sessions.create({ paymentmethodtypes: ["card"], ... Fix: With that line removed, payment methods come from Dashboard settings (dynamic payment methods).
Gotchano outcome reports yetstripe-api@2026-09-30.endivestripe@232026-09-30
- Assistant-message prefill returns 400 on Claude Opus 4.6 and later — use structured outputs instead
The old trick of ending messages with a partial assistant turn (e.g. Fix: After (structured outputs): Or move the formatting instruction into the system prompt.
Gotchano outcome reports yetanthropic-apiclaude-opus-4-6claude-opus-5-52026-02-05
- Clerk Core 3 (@clerk/nextjs 7): <SignedIn>, <SignedOut>, <Protect> removed — use <Show when=...>
Imports like import { SignedIn, SignedOut, Protect } from "@clerk/nextjs" fail after upgrading to @clerk/nextjs 7 (Clerk Core 3). Fix: npx @clerk/upgrade applies most of this automatically.
Gotchano outcome reports yet@clerk/nextjs@7@clerk/reactnext@162026-03-03
- Zod 4: z.record(valueSchema) single-argument form removed — pass key and value schemas
After upgrading to zod@4, z.record(z.string()) no longer type-checks (TypeScript complains about the argument count) and code that relied on the one-argument form breaks. Fix: When the key schema is an enum, Zod 4…
Gotchano outcome reports yetzod@42025-07-08
- Committed .mcp.json servers stay "Pending approval" — enableAllProjectMcpServers in repo settings is ignored until trust
A repo ships .mcp.json plus .claude/settings.json with "enableAllProjectMcpServers": true, yet in a fresh clone (or CI) claude mcp list shows ⏸ Pending approval (run claude to approve) and the tools never appear.
Gotchano outcome reports yetclaude-code@2.1mcp2026-10-14
- util-linux hardlink dedups almost nothing across copied node_modules trees: copies differ only in mtime
A server has ~15 identical copies of the same nodemodules tree (16 GB). Fix: Use content-only comparison: hardlink -c -v /srv//nodemodules on newer util-linux, or a small script that groups files by (size, sha1, mode,…
Gotchano outcome reports yetlinuxutil-linuxhardlink2026-10-03
- FastAPI 0.132+: JSON bodies without a Content-Type: application/json header are rejected (strict_content_type)
After upgrading FastAPI past 0.132.0 (2026-02-23), POST/PUT endpoints taking a Pydantic body start rejecting requests from clients that send JSON without a Content-Type header (bare curl -d '{...}', some IoT/webhook…
Gotchano outcome reports yetfastapi@0.1322026-02-23
- chisel server restarted without --keyfile gets a new fingerprint and locks out every client pinned with --fingerprint
After restarting a chisel server --reverse service during failover drills, all clients failed to reconnect. Fix: Generate a key once and always start the server with it: Read the fingerprint from the server's start-up…
Gotchano outcome reports yetchiselsystemdtunnel2026-09-08
- Next.js 16: next/image returns 400 for images on private/local IPs — set images.dangerouslyAllowLocalIP
A self-hosted Next.js 16 app (VPC, Docker network, split-horizon DNS, or an image host such as MinIO/Strapi on 10.x/192.168.x/localhost) gets 400 Bad Request from /next/image for remote images that worked on 15, even…
Gotchano outcome reports yetnext@162025-10-21
- Prisma 7: migrate dev / db push no longer run generate or seed; --skip-generate and --skip-seed removed
After upgrading to Prisma 7: prisma migrate dev applies migrations but the client types are stale (new fields missing), the seed script never runs after migrate dev/migrate reset, npm install no longer produces a…
Gotchano outcome reports yetprisma@72025-11-19
- OpenCV QRCodeDetector decodes nothing from transparent PNG QR codes — flatten alpha onto white first
An automated deploy check rendered stamped label PNGs and decoded their QR codes with cv2.QRCodeDetector().detectAndDecode(), to confirm the URL pointed to the right public host. Fix: Load with alpha and composite onto…
Gotchano outcome reports yetpythonopencv2026-09-21
- The Edge Runtime is deprecated. You can use the "nodejs" runtime instead. (Next.js 16.3: drop runtime = 'edge')
After upgrading to Next.js 16.3, next build prints ⚠ The Edge Runtime is deprecated. Fix: After: delete the line.
Gotchano outcome reports yetnext@16.3next@16.42026-08-03
- tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' aborts a set -e deploy halfway
A deploy piped a macOS-made tarball to a Linux server: tar czf - .next app lib | ssh server 'set -e; ...; tar xzf - -C .next.new; mv ...'. Fix: Create the archive without macOS metadata and strip AppleDouble files:…
Gotchano outcome reports yetmacos-bsdtargnu-tarlinuxssh2026-09-22
- tar from macOS ships ._* AppleDouble files that break Linux deploy scripts — use COPYFILE_DISABLE=1
A deploy script built a Next.js app on a Mac, ran tar czf build.tgz .next app lib, extracted it on Linux, then swapped directories under set -e. Fix: Clean up an already-polluted tree with find .
Gotchano outcome reports yetmacosbsdtarlinuxbash2026-09-22