{
  "schema_version": "1.0",
  "name": "Stuck to Shipped",
  "url": "https://stucktoshipped.com/",
  "generated": "2026-10-30",
  "description": "Machine-readable index of every published fix. Free: error strings, symptoms, root cause (on the .md twin), status, dates, versions, a fix teaser, sources, and SHA-256 hashes of the paid content. The full fix is paid (see full_fix and /products.json). status is one of manually-verified, partially-verified, as-reported. ci_status is pending-ci for all fixes: nightly CI re-runs with signed results are planned and no CI results exist yet. See /verify.md.",
  "status_definitions": {
    "manually-verified": "We reproduced the error and confirmed the fix on our own test machine on the date shown. Nightly CI re-runs are not running yet.",
    "partially-verified": "We reproduced the error and verified part of the fix; the parts we could not test are listed on the page.",
    "as-reported": "Built only from official docs and public reports, linked under Sources. We have not reproduced it yet."
  },
  "ci_status_definitions": {
    "pending-ci": "Nightly GitHub Actions re-runs with signed results are planned but not running yet. No CI results exist for this fix."
  },
  "count": 13,
  "fixes": [
    {
      "id": "APP-13",
      "title": "\"Module not found: Can't resolve './components/header'\" on Vercel or Netlify, but it builds on your computer",
      "error_string": "Module not found: Can't resolve './components/header'",
      "also_appears_as": [
        "[UNRESOLVED_IMPORT] Could not resolve './components/header' in src/App.tsx",
        "error TS2307: Cannot find module './components/header' or its corresponding type declarations."
      ],
      "platforms": [
        "Vercel",
        "Netlify",
        "Cursor",
        "Bolt",
        "Lovable"
      ],
      "primary_platform": "vercel",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "20.19.2",
        "vite": "8.3.5 (react-ts template)",
        "git": "2.47.3"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/APP-13/",
      "repro_files_url": "https://stucktoshipped.com/repros/APP-13/index.json",
      "fix_summary": "Linux build servers are case-sensitive and your Mac or PC isn't. The full fix shows how to find the mismatch and the git-safe way to rename a file when git ignores case-only changes.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "d481431a2afea25e765b2dd6eaefd78a36cc83d3a8d5d23e9d57e612461a9d31",
        "words": 417,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 17,
        "manifest_url": "https://stucktoshipped.com/repros/APP-13/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/vercel/module-not-found-filename-casing/",
      "markdown_url": "https://stucktoshipped.com/fixes/vercel/module-not-found-filename-casing/index.md",
      "json_url": "https://stucktoshipped.com/fixes/vercel/module-not-found-filename-casing/index.json",
      "sources": [
        {
          "title": "Vercel KB: How do I resolve a 'module not found' error?",
          "url": "https://vercel.com/kb/guide/how-do-i-resolve-a-module-not-found-error"
        },
        {
          "title": "Stack Overflow: Next.js build error on Vercel but not in local",
          "url": "https://stackoverflow.com/questions/72421143/next-js-build-error-on-vercel-but-not-in-local"
        },
        {
          "title": "Vercel community: Module not found for existing file with correct casing",
          "url": "https://community.vercel.com/t/module-not-found-for-existing-file-with-correct-casing/14128"
        },
        {
          "title": "next.js discussion 57507",
          "url": "https://github.com/vercel/next.js/discussions/57507"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "6508e0b27d04aca92cb6fb64bf0bc7c612330131ee54e763df18edfd9cc02bf9"
    },
    {
      "id": "AGT-11",
      "title": "\"OpenClaw config is invalid\": the gateway won't start after you edited openclaw.json",
      "error_string": "OpenClaw config is invalid",
      "also_appears_as": [
        "gateway: Unrecognized key: \"prot\"",
        "<root>: JSON5 parse failed: SyntaxError: JSON5: invalid character",
        "Invalid config at ...",
        "config reload skipped (invalid config)"
      ],
      "platforms": [
        "OpenClaw"
      ],
      "primary_platform": "openclaw",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "26.12.1",
        "openclaw": "2026.10.7 (157d8c2)"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/AGT-11/",
      "repro_files_url": "https://stucktoshipped.com/repros/AGT-11/index.json",
      "fix_summary": "OpenClaw rejects unknown keys and invalid JSON5. The full fix covers both cases, what `doctor --fix` really does to your config (it is not harmless), and how to confirm the config is valid again.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "dfb37473a2122886bd4a04684d4a624b4d9e78f2f9d224f100522d408219fbf4",
        "words": 474,
        "code_blocks": 2,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 9,
        "manifest_url": "https://stucktoshipped.com/repros/AGT-11/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/openclaw/config-is-invalid/",
      "markdown_url": "https://stucktoshipped.com/fixes/openclaw/config-is-invalid/index.md",
      "json_url": "https://stucktoshipped.com/fixes/openclaw/config-is-invalid/index.json",
      "sources": [
        {
          "title": "OpenClaw docs: Config validation and checks",
          "url": "https://docs.openclaw.ai/gateway/troubleshooting/config-validation-and-probes"
        },
        {
          "title": "OpenClaw docs: troubleshooting",
          "url": "https://docs.openclaw.ai/help/troubleshooting"
        },
        {
          "title": "GitHub #78407: doctor --fix rewrote model refs on update",
          "url": "https://github.com/openclaw/openclaw/issues/78407"
        },
        {
          "title": "GitHub #13835: config rewrite after update/doctor dropped gateway.auth",
          "url": "https://github.com/openclaw/openclaw/issues/13835"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "411e93ef46721aa1033657f709d9307c09a60038ee78bf23ad2b2bfc3360c813"
    },
    {
      "id": "AGT-02",
      "title": "\"openclaw: command not found\" right after npm install -g openclaw succeeded",
      "error_string": "openclaw: command not found",
      "also_appears_as": [
        "zsh: command not found: openclaw",
        "zsh: command not found: moltbot (older versions)"
      ],
      "platforms": [
        "OpenClaw"
      ],
      "primary_platform": "openclaw",
      "versions": {
        "os": "Debian 13 (container), bash",
        "node": "26.12.1",
        "npm": "11.20.0",
        "openclaw": "2026.10.7 (157d8c2)"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/AGT-02/",
      "repro_files_url": "https://stucktoshipped.com/repros/AGT-02/index.json",
      "fix_summary": "OpenClaw installed fine, but your shell can't see npm's global bin folder. The full fix shows how to find that folder, add it to your shell startup file for bash or zsh, and confirm the command works.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "5f0be598ec82c3e53447909d181d73f61de47466d67f9f499e3b95e12b8ecbf7",
        "words": 392,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 4,
        "manifest_url": "https://stucktoshipped.com/repros/AGT-02/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/openclaw/command-not-found/",
      "markdown_url": "https://stucktoshipped.com/fixes/openclaw/command-not-found/index.md",
      "json_url": "https://stucktoshipped.com/fixes/openclaw/command-not-found/index.json",
      "sources": [
        {
          "title": "OpenClaw docs: Node.js (section \"openclaw: command not found\")",
          "url": "https://docs.openclaw.ai/install/node"
        },
        {
          "title": "GitHub #87864: openclaw command not found after npm global install",
          "url": "https://github.com/openclaw/openclaw/issues/87864"
        },
        {
          "title": "GitHub #3038: zsh: command not found: moltbot",
          "url": "https://github.com/openclaw/openclaw/issues/3038"
        },
        {
          "title": "r/openclaw: Openclaw command not found??",
          "url": "https://www.reddit.com/r/openclaw/comments/1spxfd8/openclaw_command_not_found/"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "5b4fe65bd00ff071ea34caa314ee516aa4ad36b2dd27e74435da9679bb2da55f"
    },
    {
      "id": "APP-01",
      "title": "\"supabaseUrl is required.\" and a blank white page after deploying your Lovable or Bolt app",
      "error_string": "Uncaught Error: supabaseUrl is required.",
      "also_appears_as": [
        "Blank white page after deploy (Vite + React + Supabase)"
      ],
      "platforms": [
        "Supabase",
        "Lovable",
        "Bolt",
        "Cursor",
        "Vercel",
        "Netlify"
      ],
      "primary_platform": "supabase",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "20.19.2",
        "vite": "8.3.5",
        "react": "19.3.1",
        "@supabase/supabase-js": "2.109.0",
        "browser": "Headless Chrome 156"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/APP-01/",
      "repro_files_url": "https://stucktoshipped.com/repros/APP-01/index.json",
      "fix_summary": "The Supabase settings never made it into your production build. The full fix shows the exact variable names to set on Vercel or Netlify, the two traps we confirmed, and how to verify the live site.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "6ad2dfb2e96ae9329ee9ebfb919f60175d88ba5b7a4c4a612dc702dd0655c3a9",
        "words": 475,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 14,
        "manifest_url": "https://stucktoshipped.com/repros/APP-01/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/supabase/supabaseurl-is-required-blank-page/",
      "markdown_url": "https://stucktoshipped.com/fixes/supabase/supabaseurl-is-required-blank-page/index.md",
      "json_url": "https://stucktoshipped.com/fixes/supabase/supabaseurl-is-required-blank-page/index.json",
      "sources": [
        {
          "title": "Stack Overflow: Error: supabaseUrl is required",
          "url": "https://stackoverflow.com/questions/68239168/error-supabaseurl-is-required-supabase-postgresql"
        },
        {
          "title": "Stack Overflow: Next.js + Supabase not deploying, supabaseUrl is required",
          "url": "https://stackoverflow.com/questions/74264517/nextjs-supabase-not-deploying-supabaseurl-is-required"
        },
        {
          "title": "Stack Overflow: Vite env variable returns undefined in production with Vercel",
          "url": "https://stackoverflow.com/questions/75559927/vite-env-variable-returns-undefined-in-production-with-vercel"
        },
        {
          "title": "r/lovable: connecting a Lovable site to Netlify",
          "url": "https://www.reddit.com/r/lovable/comments/1w5880y/i_need_help_with_connecting_my_lovable_site_to/"
        },
        {
          "title": "Netlify Knowledge Base: deploy your Lovable app",
          "url": "https://www.netlify.com/knowledge-base/deploy-your-lovable-app-to-netlify/"
        },
        {
          "title": "Lovable docs: external deployment and hosting",
          "url": "https://docs.lovable.dev/tips-tricks/external-deployment-hosting"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "1c5132d2433aa58545d4b8d6af06d3e2d244e7f0becd3141c69cd0dc5b396a7e"
    },
    {
      "id": "AGT-03",
      "title": "OpenClaw dashboard says \"pairing required\" (\"disconnected (1008): pairing required\" / \"Approve this browser\")",
      "error_string": "disconnected (1008): pairing required",
      "also_appears_as": [
        "device pairing required (requestId: ...)",
        "Approve this browser",
        "code=1008 ... cause=device-required"
      ],
      "platforms": [
        "OpenClaw"
      ],
      "primary_platform": "openclaw",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "26.12.1",
        "openclaw": "2026.10.7 (157d8c2)",
        "browser": "Headless Chrome 156"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/AGT-03/",
      "repro_files_url": "https://stucktoshipped.com/repros/AGT-03/index.json",
      "fix_summary": "Each new browser has to be approved once on the gateway host, even with the right token. The full fix walks through finding the pending request and approving it, plus a one-time-link alternative.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "395471489f17de0415853f0bc173ef90da93fbc70d83b8f53807988f4a1c24bf",
        "words": 428,
        "code_blocks": 0,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 11,
        "manifest_url": "https://stucktoshipped.com/repros/AGT-03/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/openclaw/pairing-required/",
      "markdown_url": "https://stucktoshipped.com/fixes/openclaw/pairing-required/index.md",
      "json_url": "https://stucktoshipped.com/fixes/openclaw/pairing-required/index.json",
      "sources": [
        {
          "title": "OpenClaw docs: Connect and pair",
          "url": "https://docs.openclaw.ai/web/control-ui/connect-and-pair"
        },
        {
          "title": "GitHub #4531: disconnected (1008): pairing required",
          "url": "https://github.com/openclaw/openclaw/issues/4531"
        },
        {
          "title": "GitHub #21236: pairing required after update",
          "url": "https://github.com/openclaw/openclaw/issues/21236"
        },
        {
          "title": "GitHub #16305: Gateway unreachable: pairing required",
          "url": "https://github.com/openclaw/openclaw/issues/16305"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "474950209d0b5ba6378e18811b24b5e5c9d88a0663cc59b8269ae80cf9022eac"
    },
    {
      "id": "AGT-01",
      "title": "OpenClaw install fails: \"this OpenClaw release requires Node >=24.22.1 <25 || >=26.12.1\"",
      "error_string": "[openclaw] error: this OpenClaw release requires Node >=24.22.1 <25 || >=26.12.1.",
      "also_appears_as": [
        "npm error [openclaw] detected Node 20.19.2 (exec: /usr/bin/node).",
        "Windows Companion: Node 24.19.0 is unsupported (even though Windows has Node 26 installed)"
      ],
      "platforms": [
        "OpenClaw"
      ],
      "primary_platform": "openclaw",
      "versions": {
        "os": "Debian 13 (x64 container)",
        "node_before": "20.19.2",
        "node_after": "26.12.1",
        "npm": "11.20.0 (bundled with Node 26.12.1)",
        "openclaw": "2026.10.7 (157d8c2)"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/AGT-01/",
      "repro_files_url": "https://stucktoshipped.com/repros/AGT-01/index.json",
      "fix_summary": "Your Node version is older than OpenClaw's supported range. The full fix shows the supported versions, three ways to switch Node safely, the reinstall, and the check that confirms it worked, plus the Windows Companion variant.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "4ef3dc3e00f906c2163f270a113a0460a1cda691184ae458edc6f448889b74dc",
        "words": 571,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 6,
        "manifest_url": "https://stucktoshipped.com/repros/AGT-01/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/openclaw/requires-node-24-or-26/",
      "markdown_url": "https://stucktoshipped.com/fixes/openclaw/requires-node-24-or-26/index.md",
      "json_url": "https://stucktoshipped.com/fixes/openclaw/requires-node-24-or-26/index.json",
      "sources": [
        {
          "title": "OpenClaw docs: Node.js runtime (supported versions)",
          "url": "https://docs.openclaw.ai/install/node"
        },
        {
          "title": "OpenClaw docs: Node.js compatibility",
          "url": "https://docs.openclaw.ai/install/node-compatibility"
        },
        {
          "title": "OpenClaw Community forum: Installation Error - Node Version Fix (Windows Companion variant, Oct 25, 2026)",
          "url": "https://community.openclaw.ai/t/installation-error-node-version-fix/223"
        },
        {
          "title": "openclaw-windows-node#1843 (Companion installs Node 24.19.0 in WSL)",
          "url": "https://github.com/openclaw/openclaw-windows-node/issues/1843"
        },
        {
          "title": "GitHub #145658: Setup fails in install-cli step due to unsupported Node version",
          "url": "https://github.com/openclaw/openclaw/issues/145658"
        },
        {
          "title": "GitHub #164396: clean Node 22 LTS install fails to connect",
          "url": "https://github.com/openclaw/openclaw/issues/164396"
        },
        {
          "title": "GitHub PR #81264: installer Node floor aligned with package engine",
          "url": "https://github.com/openclaw/openclaw/pull/81264"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "456d118553fba867b0c2727417203febff838c18420d459f3012f66425d3bc1b"
    },
    {
      "id": "APP-19",
      "title": "Stripe webhook: \"No signatures found matching the expected signature for payload\"",
      "error_string": "No signatures found matching the expected signature for payload. Are you passing the raw request body you received from Stripe?",
      "also_appears_as": [
        "Webhook payload must be provided as a string or a Buffer ... Payload was provided as a parsed JavaScript object instead."
      ],
      "platforms": [
        "Stripe",
        "Cursor",
        "Bolt",
        "Lovable",
        "Vercel"
      ],
      "primary_platform": "stripe",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "20.19.2",
        "express": "5.3.0",
        "stripe": "23.0.1 (stripe-node)"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/APP-19/",
      "repro_files_url": "https://stucktoshipped.com/repros/APP-19/index.json",
      "fix_summary": "Stripe signs the raw request bytes, and your server changes them before verification. The full fix gives the exact Express route order and body handling, the secret checks, and our 4-case test table.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "98c0a7ca9438f66cda5333522ad33df53745e32d329bca4099576de67479542a",
        "words": 495,
        "code_blocks": 2,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 7,
        "manifest_url": "https://stucktoshipped.com/repros/APP-19/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/stripe/webhook-no-signatures-found/",
      "markdown_url": "https://stucktoshipped.com/fixes/stripe/webhook-no-signatures-found/index.md",
      "json_url": "https://stucktoshipped.com/fixes/stripe/webhook-no-signatures-found/index.json",
      "sources": [
        {
          "title": "Stripe docs: resolve webhook signature verification errors",
          "url": "https://docs.stripe.com/webhooks/signature?lang=node"
        },
        {
          "title": "Stack Overflow: No signatures found matching the expected signature for payload",
          "url": "https://stackoverflow.com/questions/53899365/stripe-error-no-signatures-found-matching-the-expected-signature-for-payload"
        },
        {
          "title": "Stack Overflow: Webhook payload must be provided as a string or a Buffer",
          "url": "https://stackoverflow.com/questions/76281195/stripe-webhook-payload-must-be-provided-as-a-string-or-a-buffer"
        },
        {
          "title": "Stack Overflow: webhook with Stripe and Next.js 13",
          "url": "https://stackoverflow.com/questions/75828724/i-am-trying-to-setup-of-a-webhook-using-stripe-and-nextjs-13-2-3"
        },
        {
          "title": "Stack Overflow: Stripe webhook error on Next.js / Vercel",
          "url": "https://stackoverflow.com/questions/77377919/stripe-webhook-error-no-signatures-found-matching-the-expected-signature-for-p"
        },
        {
          "title": "vercel/next.js#49739",
          "url": "https://github.com/vercel/next.js/issues/49739"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "ffd7680134907642753ea7fd848d4bab934b5f016acfc3c04a3a8fe24c3f8254"
    },
    {
      "id": "APP-16",
      "title": "Your app runs fine with npm run dev, but the deploy fails with TypeScript errors",
      "error_string": "error TS6133: 'count' is declared but its value is never read.",
      "also_appears_as": [
        "error TS2322: Type '...' is not assignable to type '...'",
        "Type error: ... / Failed to compile (Next.js)"
      ],
      "platforms": [
        "Bolt",
        "Lovable",
        "Cursor",
        "Netlify",
        "Vercel"
      ],
      "primary_platform": "vite",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "20.19.2",
        "vite": "8.3.5 (react-ts template, strict, noUnusedLocals)",
        "browser": "Headless Chrome 156"
      },
      "last_verified": "2026-10-26",
      "status": "manually-verified",
      "status_label": "Manually verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/APP-16/",
      "repro_files_url": "https://stucktoshipped.com/repros/APP-16/index.json",
      "fix_summary": "The dev server skips type-checking; the production build doesn't. The full fix shows how to see every error locally in one pass, fix them, and why turning the check off is a trap.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "ae595970ea3cec274438ab9c87caa2241dbb6e7cc08ca6ccc1ab7132ba258ad8",
        "words": 363,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 13,
        "manifest_url": "https://stucktoshipped.com/repros/APP-16/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/vite/typescript-errors-fail-build-dev-works/",
      "markdown_url": "https://stucktoshipped.com/fixes/vite/typescript-errors-fail-build-dev-works/index.md",
      "json_url": "https://stucktoshipped.com/fixes/vite/typescript-errors-fail-build-dev-works/index.json",
      "sources": [
        {
          "title": "r/boltnewbuilders: Netlify builds failing due to TypeScript errors",
          "url": "https://www.reddit.com/r/boltnewbuilders/comments/1hy1d9d/help_with_manual_deployment_netlify_builds/"
        },
        {
          "title": "next.js discussion 24866: local builds succeed but Vercel build fails (Type error)",
          "url": "https://github.com/vercel/next.js/discussions/24866"
        },
        {
          "title": "r/cursor: moving from dev environment to production build",
          "url": "https://www.reddit.com/r/cursor/comments/1hgmjl3/looking_for_help_moving_from_dev_environment_to/"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "76a659575babd968b419fb51ed6468e3e8ea1ef1c5e5832d8c5cf64f3453e574"
    },
    {
      "id": "APP-02",
      "title": "\"Page Not Found\" / \"404: NOT_FOUND\" when you refresh or open a deep link in your deployed React app",
      "error_string": "Page Not Found",
      "also_appears_as": [
        "404: NOT_FOUND",
        "404 on refresh (React Router single-page app)"
      ],
      "platforms": [
        "Netlify",
        "Vercel",
        "Lovable",
        "Bolt",
        "Cursor"
      ],
      "primary_platform": "netlify",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "20.19.2",
        "vite": "8.3.5",
        "react": "19.3.1",
        "react-router-dom": "7.18.4",
        "netlify-cli": "27.14.2 (offline emulator)"
      },
      "last_verified": "2026-10-26",
      "status": "partially-verified",
      "status_label": "Partially verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/APP-02/",
      "repro_files_url": "https://stucktoshipped.com/repros/APP-02/index.json",
      "fix_summary": "Your single-page app needs a fallback rule on the host. The full fix gives the exact file and line for Netlify and Cloudflare Pages, the Vercel equivalent, and when NOT to use it.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "03c45d60dc667da8068fed1428fd49735b6c178e16f5724c5a6fa0e4ca56135b",
        "words": 432,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 19,
        "manifest_url": "https://stucktoshipped.com/repros/APP-02/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/netlify/page-not-found-on-refresh/",
      "markdown_url": "https://stucktoshipped.com/fixes/netlify/page-not-found-on-refresh/index.md",
      "json_url": "https://stucktoshipped.com/fixes/netlify/page-not-found-on-refresh/index.json",
      "sources": [
        {
          "title": "Stack Overflow: Netlify renders 404 on page refresh",
          "url": "https://stackoverflow.com/questions/58065603/netlify-renders-404-on-page-refresh-using-react-and-react-router"
        },
        {
          "title": "Stack Overflow: Page Not Found ... deployed on Netlify",
          "url": "https://stackoverflow.com/questions/50752350/page-not-found-when-trying-to-access-a-site-deployed-on-netlify"
        },
        {
          "title": "Stack Overflow: Vercel project 404 on refresh",
          "url": "https://stackoverflow.com/questions/75963788/why-is-my-vercel-project-giving-me-an-error-404-on-refresh"
        },
        {
          "title": "r/lovable: Lovable website shows Page Not Found on Netlify",
          "url": "https://www.reddit.com/r/lovable/comments/1k10ug7/fix_lovable_website_shows_page_not_found_on/"
        },
        {
          "title": "Netlify docs: redirects (file goes in the publish directory)",
          "url": "https://docs.netlify.com/manage/routing/redirects/overview/"
        },
        {
          "title": "Netlify support guide: I've deployed my site but I still see Page not found",
          "url": "https://answers.netlify.com/t/support-guide-i-ve-deployed-my-site-but-i-still-see-page-not-found/125"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "95ffeeacc2f8b1d6667b8ff682faee2908bbd81d8cb091ad2dd3c294b91165f0"
    },
    {
      "id": "AGT-12",
      "title": "OpenClaw: 'No API key found for provider \"anthropic\"'",
      "error_string": "No API key found for provider \"anthropic\"",
      "also_appears_as": [
        "No API key found for provider \"openai\"",
        "Configure an API key (openclaw models auth paste-api-key --provider anthropic"
      ],
      "platforms": [
        "OpenClaw"
      ],
      "primary_platform": "openclaw",
      "versions": {
        "os": "Debian 13 (container)",
        "node": "26.12.1",
        "openclaw": "2026.10.7 (157d8c2)"
      },
      "last_verified": "2026-10-26",
      "status": "partially-verified",
      "status_label": "Partially verified",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": "2026-11-25",
      "published": "2026-10-30",
      "repro_url": "https://stucktoshipped.com/repros/AGT-12/",
      "repro_files_url": "https://stucktoshipped.com/repros/AGT-12/index.json",
      "fix_summary": "OpenClaw can't find a credential where the gateway looks for it. The full fix shows the two places a key can live, how to make the gateway pick it up, and how to tell 'key missing' from 'key wrong'.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "577c41960b57dfe96a29514df0a0513702ab67f4fe4ddb048293d4dcac2e9f9a",
        "words": 467,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested (Oct 26, 2026)"
        ]
      },
      "repro_bundle": {
        "access": "paid",
        "product_id": "repro-bundle",
        "price_usd": 9,
        "files": 5,
        "manifest_url": "https://stucktoshipped.com/repros/AGT-12/index.json"
      },
      "url": "https://stucktoshipped.com/fixes/openclaw/no-api-key-found-for-provider/",
      "markdown_url": "https://stucktoshipped.com/fixes/openclaw/no-api-key-found-for-provider/index.md",
      "json_url": "https://stucktoshipped.com/fixes/openclaw/no-api-key-found-for-provider/index.json",
      "sources": [
        {
          "title": "GitHub #63752: No API key found for provider anthropic despite valid auth-profiles.json",
          "url": "https://github.com/openclaw/openclaw/issues/63752"
        },
        {
          "title": "GitHub #26916: auth-profiles docs show wrong field names",
          "url": "https://github.com/openclaw/openclaw/issues/26916"
        },
        {
          "title": "GitHub #28927: ollama wrongly requires API key",
          "url": "https://github.com/openclaw/openclaw/issues/28927"
        },
        {
          "title": "Discord archive (answeroverflow)",
          "url": "https://www.answeroverflow.com/m/1481639984476852401"
        }
      ],
      "indexable": true,
      "reviewed_by_human": null,
      "content_sha256": "77ac46ce518a417b2dc8ba013354742610ec56f1f7f8ee3576c1e0932c110dbe"
    },
    {
      "id": "AGT-25",
      "title": "\"openclaw update\" fails with reason code doctor-failed (update rolls back)",
      "error_string": "Reason code: doctor-failed",
      "also_appears_as": [
        "candidate doctor lint ... failed",
        "lint: Candidate lint failed",
        "Rollback outcome: verified safe to restart",
        "Update history reconciliation could not complete: RangeError: Maximum call stack size exceeded",
        "unsupported-plugin-install-index"
      ],
      "platforms": [
        "OpenClaw"
      ],
      "primary_platform": "openclaw",
      "versions": {
        "reported_on": "OpenClaw 2026.9.4 → 2026.9.5 (macOS, Node 26.8.2); 2026.9.5 → 2026.9.6 (Linux, Node 24.21.0); → 2026.10.8 (macOS, Node 26.13.0)",
        "tested_by_us": "not yet reproduced"
      },
      "last_verified": null,
      "status": "as-reported",
      "status_label": "As reported (not yet reproduced)",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": null,
      "published": "2026-10-30",
      "repro_url": null,
      "repro_files_url": null,
      "fix_summary": "The update ran OpenClaw's own checks against your state and rolled back. The full guide maps the official recovery order (what to check first, what never to delete) and the version-specific reports, with sources.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "484970283c25bdcf10e0e53e77f337973697f8a2efdd9ba7218a55452bcdc3c2",
        "words": 617,
        "code_blocks": 1,
        "sections": [
          "Fix (from OpenClaw's docs)",
          "How to check it worked",
          "What we actually tested"
        ]
      },
      "repro_bundle": null,
      "url": "https://stucktoshipped.com/fixes/openclaw/update-doctor-failed/",
      "markdown_url": "https://stucktoshipped.com/fixes/openclaw/update-doctor-failed/index.md",
      "json_url": "https://stucktoshipped.com/fixes/openclaw/update-doctor-failed/index.json",
      "sources": [
        {
          "title": "OpenClaw docs: Update troubleshooting (reason codes, incl. doctor-failed)",
          "url": "https://docs.openclaw.ai/install/update-troubleshooting"
        },
        {
          "title": "GitHub #152759: update 2026.9.4 → 2026.9.5 fails with reason code doctor-failed; auto-rollback succeeds (closed)",
          "url": "https://github.com/openclaw/openclaw/issues/152759"
        },
        {
          "title": "GitHub #157011: managed update 2026.9.5 → 2026.9.6 always rolls back (survives doctor --fix) (closed)",
          "url": "https://github.com/openclaw/openclaw/issues/157011"
        },
        {
          "title": "OpenClaw Community forum: Update to 2026.10.8 failed, stuck between database migration and Doctor errors (Oct 29, 2026)",
          "url": "https://community.openclaw.ai/t/update-to-2026-10-8-failed-stuck-between-database-migration-and-doctor-errors/266"
        },
        {
          "title": "GitHub search: issues with \"update\" and \"doctor\" in the title since Sep 1, 2026",
          "url": "https://github.com/openclaw/openclaw/issues?q=is%3Aissue+in%3Atitle+update+doctor+created%3A%3E%3D2026-09-01"
        }
      ],
      "indexable": false,
      "reviewed_by_human": null,
      "content_sha256": "d624e522d9c8504a7a0c2f5ac3d6856f3551d5019c14070268d3e9eebb9b5425"
    },
    {
      "id": "APP-33",
      "title": "Lovable TanStack Start app: build succeeds on Vercel, then every route is 404: NOT_FOUND",
      "error_string": "404: NOT_FOUND",
      "also_appears_as": [
        "Code: NOT_FOUND",
        "Green build on Vercel, 404 on every page (Lovable project using @lovable.dev/vite-tanstack-config)"
      ],
      "platforms": [
        "Lovable",
        "Vercel"
      ],
      "primary_platform": "lovable",
      "versions": {
        "reported_on": "Lovable projects built on TanStack Start (@lovable.dev/vite-tanstack-config), deployed to Vercel",
        "zero_config_requires": "@lovable.dev/vite-tanstack-config ^2.6.2 or higher (per Vercel docs)",
        "latest_on_npm_oct_30_2026": "2.27.0",
        "tested_by_us": "not yet reproduced"
      },
      "last_verified": null,
      "status": "as-reported",
      "status_label": "As reported (not yet reproduced)",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": null,
      "published": "2026-10-30",
      "repro_url": null,
      "repro_files_url": null,
      "fix_summary": "Newer Lovable projects are server-rendered (TanStack Start), so the classic SPA rewrite doesn't apply. The full fix covers the version requirement in Vercel's Lovable doc, the redeploy steps, and a community fallback.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "60599758a2fa7a270aabc8040fb7463432b5fd3cafd4b90163adcec3e1605335",
        "words": 523,
        "code_blocks": 1,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested"
        ]
      },
      "repro_bundle": null,
      "url": "https://stucktoshipped.com/fixes/lovable/tanstack-start-vercel-404-not-found/",
      "markdown_url": "https://stucktoshipped.com/fixes/lovable/tanstack-start-vercel-404-not-found/index.md",
      "json_url": "https://stucktoshipped.com/fixes/lovable/tanstack-start-vercel-404-not-found/index.json",
      "sources": [
        {
          "title": "Vercel docs: Deploy a Lovable app on Vercel",
          "url": "https://vercel.com/docs/integrations/lovable"
        },
        {
          "title": "dev.to: I spent 3 hours debugging a Vercel 404 on my Lovable app (May 2026)",
          "url": "https://dev.to/malik_sohaib_iqbal/i-spent-3-hours-debugging-a-vercel-404-on-my-lovable-app-heres-what-fixed-it-5ele"
        },
        {
          "title": "r/lovable: Has anyone deployed Lovable's new TanStack Start app?",
          "url": "https://www.reddit.com/r/lovable/comments/1tvqpp3/has_anyone_deployed_lovables_new_tanstack_start/"
        },
        {
          "title": "npm: @lovable.dev/vite-tanstack-config",
          "url": "https://www.npmjs.com/package/@lovable.dev/vite-tanstack-config"
        }
      ],
      "indexable": false,
      "reviewed_by_human": null,
      "content_sha256": "7020aea8fa8713de3722de0dce2f9ce433c29efab3e44f70fcecd09fb7423486"
    },
    {
      "id": "APP-32",
      "title": "permission denied for table (42501): Supabase new tables after Oct 30, 2026",
      "error_string": "{\"code\":\"42501\",\"message\":\"permission denied for table your_table\"}",
      "also_appears_as": [
        "permission denied for table <name>",
        "Grant the required privileges to the current role with: GRANT SELECT ON public.your_table TO anon;"
      ],
      "platforms": [
        "Supabase",
        "Lovable",
        "Bolt",
        "Cursor",
        "AI agents"
      ],
      "primary_platform": "supabase",
      "versions": {
        "reported_on": "Supabase Data API (PostgREST / supabase-js), all existing projects from Oct 30, 2026; new projects since May 30, 2026",
        "tested_by_us": "not yet reproduced"
      },
      "last_verified": null,
      "status": "as-reported",
      "status_label": "As reported (not yet reproduced)",
      "ci_status": "pending-ci",
      "ci_results_url": null,
      "retest_due": null,
      "published": "2026-10-30",
      "repro_url": null,
      "repro_files_url": null,
      "fix_summary": "Since Oct 30, 2026, new Supabase tables are not exposed to the Data API until you grant access. The full fix gives least-privilege grant, RLS and policy SQL for each role, and the shortcut to avoid.",
      "fix_summary_is_teaser": true,
      "full_fix": {
        "access": "paid",
        "product_id": "full-fix",
        "also_in": [
          "repro-bundle",
          "fix-pass",
          "agent-api"
        ],
        "price_usd": 4,
        "currency": "USD",
        "prices_are_placeholders": true,
        "purchase_status": "not_yet_available",
        "buy_url": "https://stucktoshipped.com/pricing/#full-fix",
        "stripe_payment_link": "TODO",
        "sha256": "e9e04207c3cd52d109fdce21e630dfa1270a064e30db098d661d9baa30ef1507",
        "words": 610,
        "code_blocks": 2,
        "sections": [
          "Fix",
          "How to check it worked",
          "What we actually tested"
        ]
      },
      "repro_bundle": null,
      "url": "https://stucktoshipped.com/fixes/supabase/permission-denied-for-table-42501-new-tables/",
      "markdown_url": "https://stucktoshipped.com/fixes/supabase/permission-denied-for-table-42501-new-tables/index.md",
      "json_url": "https://stucktoshipped.com/fixes/supabase/permission-denied-for-table-42501-new-tables/index.json",
      "sources": [
        {
          "title": "Supabase changelog 45329: Breaking change, tables not exposed to Data and GraphQL API automatically",
          "url": "https://supabase.com/changelog/45329-breaking-change-tables-not-exposed-to-data-and-graphql-api-automatically"
        },
        {
          "title": "Supabase docs: Securing your API",
          "url": "https://supabase.com/docs/guides/api/securing-your-api"
        }
      ],
      "indexable": false,
      "reviewed_by_human": null,
      "content_sha256": "dc952f806ef4067dd1f4ff68981a21fed4794afc30a95ae639f51d7aad4df642"
    }
  ]
}
