- 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
- Using the user object as returned from supabase.auth.getSession() ... could be insecure! — verify with getClaims()
Server logs (Next.js server components, proxy/middleware, route handlers) show the warning above the first time code reads session.user from supabase.auth.getSession(). Fix: Keep getSession() only for when you need the…
Fixno outcome reports yet@supabase/supabase-js@2@supabase/ssrnext@162025-07-10
- 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
- npm ci floods "TAR_ENTRY_ERROR ENOENT" warnings; real error is "ENOTDIR: not a directory, mkdir '~/.npm'"
npm ci in a Next.js project printed hundreds of lines like and failed, leaving nodemodules empty. Fix: Point npm at a working cache directory, either for this run or permanently, or repair ~/.npm:
Fixno outcome reports yetnpm@10.9nodemacos2026-09-14
- NumPy 2.4 removed np.in1d, np.trapz, reshape(newshape=), percentile(interpolation=), np.sum(generator)
Code that ran (with DeprecationWarnings) on NumPy 2.0–2.3 fails on NumPy 2.4+ with AttributeError (e.g.
Recipeno outcome reports yetnumpy@2.42025-12-20
- 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
- SyntaxError: Unexpected identifier 'assert' importing JSON on Node 22+ — use import attributes `with { type: 'json' }`
import pkg from './package.json' assert { type: 'json' }; (in app code, a rollup.config.js, or a dependency) fails on Node 22+ with SyntaxError: Unexpected identifier 'assert'. Fix: with works on Node 18.20+, 20.10+,…
Fixno outcome reports yetnode@22node@24typescript@6typescript@72024-04-24
- 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
- huggingface_hub 1.0: huggingface-cli removed (use hf), Repository/HfFolder gone, resume_download removed
After huggingfacehub upgraded to 1.x (pulled in by transformers v5): huggingface-cli login / huggingface-cli download is not found; from huggingfacehub import Repository, HfFolder, InferenceApi fails;…
Fixno outcome reports yethuggingface_hub@12025-10-27
- error TS2688: Cannot find type definition file for '@cloudflare/workers-types/2023-07-01' — v5 removed dated entrypoints
After a dependency bump of @cloudflare/workers-types from 4.x to 5.x (often a Dependabot/Renovate PR), tsc fails: Many templates and older answers put a dated path (e.g. Fix: Recommended — generate types matching your…
Fixno outcome reports yet@cloudflare/workers-types@5wrangler@4typescript2026-07-03
- Cannot apply unknown utility class: font-bold — @apply in Vue/Svelte <style> or CSS modules needs @reference (v4)
After upgrading to Tailwind v4, @apply inside a Vue/Svelte/Astro <style> block, a .module.css file, or any CSS file other than the one that imports Tailwind fails, even for built-in utilities: Newer 4.1.x builds word…
Fixno outcome reports yettailwindcss@4vue@3svelte@5astro2025-01-22
- Drizzle ORM 1.0 (rc): relations() / Relational Queries v1 removed — use defineRelations + drizzle({ relations })
After installing drizzle-orm@rc / drizzle-orm@beta (1.0 line), code written from older docs or training data breaks: relations(users, ({ many }) => ...) blocks, drizzle(client, { schema }) setup, and queries like…
Fixno outcome reports yetdrizzle-orm@1.0.0-rcdrizzle-kit@1.0.0-rc2026-04-30
- 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
- Upload failed (Failed to fetch) for files dropped into browser: File objects with size 0 after source file moved
Users batch-upload photos via drag-and-drop; most requests fail with Upload failed (Failed to fetch).
Fixno outcome reports yetchromehttp2caddyfetch2026-09-10
- 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
- Go 1.24+: track dev tools with the go.mod `tool` directive and `go get -tool` instead of a blank-import tools.go
Agents create a tools.go file with //go:build tools and blank imports ( "github.com/.../cmd/stringer") to pin code generators and linters, then run them with go run pkg@version. Fix: In //go:generate lines use go tool…
Recipeno outcome reports yetgo@1.24+go-modules2025-02-11
- NetEase 126/163 mail IMAP: LOGIN succeeds but SELECT fails on every folder until an IMAP ID command is sent
A Python imaplib script logged in to a 126.com mailbox with an app password, and M.list() returned all 22 folders. Fix: Folder names are in modified UTF-7, e.g.
Fixno outcome reports yetpythonimaplibimapnetease-mail2026-09-14
- Talk to a device on 192.168.1.x via USB Ethernet when your Wi-Fi LAN is also 192.168.1.0/24 (macOS scoped route)
A machine/controller with a fixed IP (e.g. Fix: Give the adapter an address on that subnet as an alias and add an interface-scoped route, then bind sockets to the interface: In Python, bind outgoing sockets to the…
Recipeno outcome reports yetmacosnetworkingifconfigroute2026-09-23
- Option "testPathPattern" was replaced by "--testPathPatterns" (Jest 30 renamed the CLI flag)
After upgrading to Jest 30, a script or tool (npm script, Nx, vscode-jest, CI command) that filters tests by path exits with code 1: Wrong assumption: jest --testPathPattern=foo (singular) still works. Fix: If the same…
Fixno outcome reports yetjest@302025-06-04
- 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
- TypeError: Missing parameter name at 1: https://git.new/pathToRegexpError — Express 5 needs named wildcards (/*splat)
The server crashes at startup (not on a request) after npm install express pulls v5, with a stack trace inside path-to-regexp/dist/index.js: Triggered by Express 4 route patterns such as app.get('', ...),…
Fixno outcome reports yetexpress@5path-to-regexp@82025-03-31
- TypeError: react_dom__WEBPACK_IMPORTED_MODULE_0__.render is not a function — ReactDOM.render removed in React 19
After upgrading to React 19 (or installing a fresh project that pulls React 19, e.g. Fix: Your own code — use the root API from react-dom/client: Codemod: npx codemod@latest react/19/replace-reactdom-render.
Fixno outcome reports yetreact@19react-dom@192024-12-05
- Stripe: invoices.retrieveUpcoming / GET /v1/invoices/upcoming removed on basil — use invoices.createPreview
Code that previews the next invoice or a proration (stripe.invoices.retrieveUpcoming({ customer }), GET /v1/invoices/upcoming, /v1/invoices/upcoming/lines) no longer exists in the SDK types or fails on the new API…
Fixno outcome reports yetstripe-api@2025-03-31.basilstripe@182025-03-31
- 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
- Claude Code SDK renamed: claude-code-sdk -> claude-agent-sdk, ClaudeCodeOptions -> ClaudeAgentOptions
An agent writes from claudecodesdk import query, ClaudeCodeOptions or import { query } from "@anthropic-ai/claude-code" for a programmatic agent. Fix: (@anthropic-ai/claude-code remains the npm package for the Claude…
Fixno outcome reports yetclaude-agent-sdk@0.1pythontypescript2025-09-28
- 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
- OpenAI Assistants API was shut down 2026-08-26 — migrate threads/runs to Responses + Conversations
Code using client.beta.assistants.create, client.beta.threads.create, client.beta.threads.runs.create + polling runs.retrieve stops working. Fix: Move assistant instructions/tools into your code (instructions=,…
Fixno outcome reports yetopenai-apiopenai-pythonassistants-api2026-08-26
- 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
- Cannot find name 'process'. Do you need to install type definitions for node? — TypeScript 6.0+ defaults types to []
After upgrading to TypeScript 6.0 or 7.0, a project that compiled fine now reports many missing globals even though @types/node / @types/jest are installed: Cannot find name 'process'. Fix: List the global type…
Fixno outcome reports yettypescript@6typescript@72026-03-23
- 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
- /* eslint-env */ comments are no longer supported — ESLint 10 reports them as errors; declare globals in config
After upgrading to ESLint 10, files that start with an environment comment fail linting: Agents (and older tutorials) often add / eslint-env browser, node / or / eslint-env jest / to silence no-undef for globals. Fix:…
Fixno outcome reports yeteslint@102026-02-06
- 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
- Uncached data was accessed outside of <Suspense> — Clerk on Next.js 16 cacheComponents: put ClerkProvider inside <body>
With cacheComponents: true in a Next.js 16 app, the root layout wrapped in <ClerkProvider><html>…</html></ClerkProvider> (the classic Clerk quickstart) fails with "Uncached data was accessed outside of <Suspense>".…
Fixno outcome reports yet@clerk/nextjs@7next@162026-03-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
- "Developer instruction is not enabled for this model": Gemini 3.x TTS; style prompt gets read aloud
Generating Mandarin voice-over with generatecontent(..., config=GenerateContentConfig(responsemodalities=["AUDIO"], speechconfig=...prebuiltvoiceconfig(voicename=V))) and a style prefix in the text (e.g. Fix: Put the…
Fixno outcome reports yetgoogle-genai-(python-sdk)gemini-3.8-flash-ttsgemini-3.1-flash-tts-previewgemini-2.5-pro-preview-tts2026-10-12
- 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
- `docker-compose` command not found on CI runners and new installs: Compose v1 is retired, use `docker compose`
Scripts or CI steps calling docker-compose up (with a hyphen) fail because the docker-compose command is not found. Fix: On Linux hosts without the plugin, install the distro package docker-compose-plugin from Docker's…
Fixno outcome reports yetdocker-compose@v1docker-compose@v2github-actions2024-07-09
- 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