[{"data":1,"prerenderedAt":1227},["ShallowReactive",2],{"navigation_docs":3,"-troubleshooting-stop-reasons-in-detail":520,"-troubleshooting-stop-reasons-in-detail-surround":1222},[4,28,51,191,222,485],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"FAQ","\u002Fget-started\u002Ffaq","1.get-started\u002F3.faq",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F1.how-a-work-item-runs",{"title":40,"path":41,"stem":42},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F2.caps-and-budgets",{"title":44,"path":45,"stem":46},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F3.permission-gate",{"title":48,"path":49,"stem":50},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F4.vocabulary",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,96,117,138,187],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61,"children":62,"page":95},"Day to day","\u002Fguides\u002Fday-to-day","3.guides\u002F1.day-to-day",[63,67,71,75,79,83,87,91],{"title":64,"path":65,"stem":66},"The setup wizard on first start","\u002Fguides\u002Fday-to-day\u002Ffirst-run","3.guides\u002F1.day-to-day\u002F2.first-run",{"title":68,"path":69,"stem":70},"File a work item","\u002Fguides\u002Fday-to-day\u002Ffile-a-work-item","3.guides\u002F1.day-to-day\u002F3.file-a-work-item",{"title":72,"path":73,"stem":74},"Use Kraft from your agent","\u002Fguides\u002Fday-to-day\u002Fagent-integration","3.guides\u002F1.day-to-day\u002F4.agent-integration",{"title":76,"path":77,"stem":78},"Reviewing a change","\u002Fguides\u002Fday-to-day\u002Freview-a-change","3.guides\u002F1.day-to-day\u002F5.review-a-change",{"title":80,"path":81,"stem":82},"Raise a cap on a stopped item","\u002Fguides\u002Fday-to-day\u002Fraise-a-cap","3.guides\u002F1.day-to-day\u002F6.raise-a-cap",{"title":84,"path":85,"stem":86},"Kraft for VS Code","\u002Fguides\u002Fday-to-day\u002Fvscode","3.guides\u002F1.day-to-day\u002F7.vscode",{"title":88,"path":89,"stem":90},"Kraft on a phone","\u002Fguides\u002Fday-to-day\u002Fkraft-on-a-phone","3.guides\u002F1.day-to-day\u002F8.kraft-on-a-phone",{"title":92,"path":93,"stem":94},"Get notified when an item needs you","\u002Fguides\u002Fday-to-day\u002Fnotifications","3.guides\u002F1.day-to-day\u002F9.notifications",false,{"title":97,"path":98,"stem":99,"children":100,"page":95},"Customize and automate","\u002Fguides\u002Fcustomize","3.guides\u002F2.customize",[101,105,109,113],{"title":102,"path":103,"stem":104},"Write your own chain","\u002Fguides\u002Fcustomize\u002Fwrite-your-own-chain","3.guides\u002F2.customize\u002F1.write-your-own-chain",{"title":106,"path":107,"stem":108},"Add a security review or a gate reviewer","\u002Fguides\u002Fcustomize\u002Fadd-review-agents","3.guides\u002F2.customize\u002F2.add-review-agents",{"title":110,"path":111,"stem":112},"Schedule or webhook work","\u002Fguides\u002Fcustomize\u002Fschedule-and-webhook-work","3.guides\u002F2.customize\u002F3.schedule-and-webhook-work",{"title":114,"path":115,"stem":116},"Share chains with add-ons","\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons","3.guides\u002F2.customize\u002F4.share-chains-with-addons",{"title":118,"path":119,"stem":120,"children":121,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[122,126,130,134],{"title":123,"path":124,"stem":125},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":127,"path":128,"stem":129},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":131,"path":132,"stem":133},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":135,"path":136,"stem":137},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":139,"path":140,"stem":141,"children":142,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[143,147,151,155,159,163,167,171,175,179,183],{"title":144,"path":145,"stem":146},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":148,"path":149,"stem":150},"Put a proxy in front of Kraft","\u002Fguides\u002Frun\u002Fput-a-proxy-in-front-of-kraft","3.guides\u002F4.run\u002F02.put-a-proxy-in-front-of-kraft",{"title":152,"path":153,"stem":154},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":156,"path":157,"stem":158},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":160,"path":161,"stem":162},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":164,"path":165,"stem":166},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":168,"path":169,"stem":170},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":172,"path":173,"stem":174},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":176,"path":177,"stem":178},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":180,"path":181,"stem":182},"Upgrade from 0.x or a release candidate","\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate","3.guides\u002F4.run\u002F10.upgrade-from-0-x-or-a-release-candidate",{"title":184,"path":185,"stem":186},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":188,"path":189,"stem":190},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":192,"path":193,"stem":194,"children":195},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[196,198,202,206,210,214,218],{"title":10,"path":193,"stem":197},"4.troubleshooting\u002Findex",{"title":199,"path":200,"stem":201},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":203,"path":204,"stem":205},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":207,"path":208,"stem":209},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":211,"path":212,"stem":213},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":215,"path":216,"stem":217},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":219,"path":220,"stem":221},"Add-on problems","\u002Ftroubleshooting\u002Faddon-problems","4.troubleshooting\u002F6.addon-problems",{"title":223,"path":224,"stem":225,"children":226},"Reference","\u002Freference","5.reference",[227,229,267,289,293,391,409,435,439,443,477,481],{"title":10,"path":224,"stem":228},"5.reference\u002Findex",{"title":230,"path":231,"stem":232,"children":233},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[234,235,239,243,247,251,255,259,263],{"title":10,"path":231,"stem":232},{"title":236,"path":237,"stem":238},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":240,"path":241,"stem":242},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":244,"path":245,"stem":246},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":248,"path":249,"stem":250},"Fix loops and test scopes","\u002Freference\u002Fweb-ui\u002Ffix-loops-and-test-scopes","5.reference\u002F00.web-ui\u002F3.fix-loops-and-test-scopes",{"title":252,"path":253,"stem":254},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":256,"path":257,"stem":258},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":260,"path":261,"stem":262},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":264,"path":265,"stem":266},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":268,"path":269,"stem":270,"children":271},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[272,273,277,281,285],{"title":10,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":278,"path":279,"stem":280},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":282,"path":283,"stem":284},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":286,"path":287,"stem":288},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":290,"path":291,"stem":292},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":294,"path":295,"stem":296,"children":297},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[298,299,317,321,325,329,333,337,341,345,379,383,387],{"title":10,"path":295,"stem":296},{"title":300,"path":301,"stem":302,"children":303},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[304,305,309,313],{"title":10,"path":301,"stem":302},{"title":306,"path":307,"stem":308},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":310,"path":311,"stem":312},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":314,"path":315,"stem":316},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":318,"path":319,"stem":320},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":322,"path":323,"stem":324},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":326,"path":327,"stem":328},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":330,"path":331,"stem":332},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":334,"path":335,"stem":336},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":338,"path":339,"stem":340},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":342,"path":343,"stem":344},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":346,"path":347,"stem":348,"children":349},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[350,351,355,359,363,367,371,375],{"title":10,"path":347,"stem":348},{"title":352,"path":353,"stem":354},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":356,"path":357,"stem":358},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":360,"path":361,"stem":362},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":364,"path":365,"stem":366},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":368,"path":369,"stem":370},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":372,"path":373,"stem":374},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":376,"path":377,"stem":378},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":380,"path":381,"stem":382},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":384,"path":385,"stem":386},"Add-ons and collections","\u002Freference\u002Fconfiguration\u002Faddons","5.reference\u002F03.configuration\u002F12.addons",{"title":388,"path":389,"stem":390},"Repo libraries","\u002Freference\u002Fconfiguration\u002Frepo-libraries","5.reference\u002F03.configuration\u002F13.repo-libraries",{"title":392,"path":393,"stem":394,"children":395},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[396,397,401,405],{"title":10,"path":393,"stem":394},{"title":398,"path":399,"stem":400},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":402,"path":403,"stem":404},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":406,"path":407,"stem":408},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":410,"path":411,"stem":412,"children":413},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[414,415,419,423,427,431],{"title":10,"path":411,"stem":412},{"title":416,"path":417,"stem":418},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":420,"path":421,"stem":422},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":424,"path":425,"stem":426},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":428,"path":429,"stem":430},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":432,"path":433,"stem":434},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":436,"path":437,"stem":438},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":440,"path":441,"stem":442},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":444,"path":445,"stem":446,"children":447},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[448,449,453,457,461,465,469,473],{"title":10,"path":445,"stem":446},{"title":450,"path":451,"stem":452},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":454,"path":455,"stem":456},"Gates, run control, ending and retry","\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending","5.reference\u002F08.http-api\u002F3.gates-run-control-and-ending",{"title":458,"path":459,"stem":460},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":462,"path":463,"stem":464},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":466,"path":467,"stem":468},"Repos, chains, harnesses and the server","\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server","5.reference\u002F08.http-api\u002F6.repos-chains-harnesses-and-server",{"title":470,"path":471,"stem":472},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":474,"path":475,"stem":476},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":478,"path":479,"stem":480},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":482,"path":483,"stem":484},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":486,"path":487,"stem":488,"children":489},"Security and project","\u002Fproject","6.project",[490,492,496,500,504,508,512,516],{"title":10,"path":487,"stem":491},"6.project\u002Findex",{"title":493,"path":494,"stem":495},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":497,"path":498,"stem":499},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":501,"path":502,"stem":503},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":505,"path":506,"stem":507},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":509,"path":510,"stem":511},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":513,"path":514,"stem":515},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":517,"path":518,"stem":519},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":521,"title":203,"body":522,"description":1215,"extension":1216,"links":1217,"meta":1218,"navigation":1219,"path":204,"seo":1220,"stem":205,"__hash__":1221},"docs\u002F4.troubleshooting\u002F2.stop-reasons-in-detail.md",{"type":523,"value":524,"toc":1196},"minimark",[525,535,540,557,568,605,611,618,642,648,666,696,702,719,735,748,754,761,777,780,786,794,818,831,838,844,851,915,921,931,963,967,970,984,995,999,1002,1022,1035,1039,1053,1089,1095,1099,1113,1122,1139,1168,1172,1192],[526,527,528,529,534],"p",{},"These are the stop reasons that need more than one row to fix. The tables under ",[530,531,533],"a",{"href":532},"\u002Ftroubleshooting\u002Fwhy-did-my-item-stop#find-your-reason","Find your reason"," link here from each one.",[536,537,539],"h2",{"id":538},"forge-authentication-fails","Forge authentication fails",[526,541,542,543,547,548,551,552,556],{},"The stop's ",[544,545,546],"code",{},"facts.cause"," is ",[544,549,550],{},"forge_auth",", and the card reads ",[553,554,555],"strong",{},"Failed"," with the fix under it.",[526,558,559,560,563,564,567],{},"Kraft holds no forge token. It runs ",[544,561,562],{},"gh"," (GitHub) or ",[544,565,566],{},"glab"," (GitLab), and git, as the user the server runs as, and the forge refused what they sent. Nothing in Settings › Repos can supply a token.",[569,570,571,583,598],"ol",{},[572,573,574,575,578,579,582],"li",{},"On the machine the server runs on, sign the forge CLI in: ",[544,576,577],{},"gh auth login",", or ",[544,580,581],{},"glab auth login"," for GitLab.",[572,584,585,586,589,590,593,594,597],{},"If git itself still cannot authenticate, check its credentials: ",[544,587,588],{},"gh auth setup-git",", your SSH key or credential helper. ",[544,591,592],{},"gh auth status"," shows who the CLI is signed in as. ",[544,595,596],{},"kraft admin doctor"," checks only that the CLI is installed, not that it is signed in.",[572,599,600,601,604],{},"Run ",[544,602,603],{},"kraft item retry ID",".",[536,606,608],{"id":607},"no-forge-is-recorded-for-this-repo",[544,609,610],{},"no forge is recorded for this repo",[526,612,613,614,617],{},"The repo had no GitHub or GitLab ",[544,615,616],{},"origin"," when you connected it, so Kraft does not know which forge CLI to run.",[569,619,620,638],{},[572,621,622,623,626,627,630,631,634,635,637],{},"Set ",[544,624,625],{},"forge: github"," or ",[544,628,629],{},"forge: gitlab"," on the repo in Settings › Repos, then ",[553,632,633],{},"Review & publish"," (or set it in ",[544,636,300],{},").",[572,639,600,640,604],{},[544,641,603],{},[536,643,645],{"id":644},"declares-neither-test_scopes-nor-test_command",[544,646,647],{},"declares neither test_scopes nor test_command",[526,649,650,651,654,655,658,659,654,662,665],{},"The item stops at its test node (",[544,652,653],{},"verify"," on ",[544,656,657],{},"quick-task",", ",[544,660,661],{},"verification",[544,663,664],{},"default",") because Kraft will not guess a test command.",[569,667,668,692],{},[572,669,622,670,673,674,677,678,680,681,683,684,687,688,691],{},[544,671,672],{},"test_command"," (or ",[544,675,676],{},"test_scopes",") on the repo in Settings › Repos, then ",[553,679,633],{},", or set it in ",[544,682,300],{},". For a repo with no tests, set ",[544,685,686],{},"\"\"",". ",[544,689,690],{},"kraft repo connect PATH"," again saves the command it now proposes.",[572,693,600,694,604],{},[544,695,603],{},[536,697,699],{"id":698},"nothing-registers-it-for-claude-code",[544,700,701],{},"nothing registers it for Claude Code",[526,703,704,705,708,709,654,712,658,714,654,717,604],{},"No ",[544,706,707],{},"kraft"," MCP server is registered, so Kraft refused a Claude worker. The item stops at its first agent step with 0 tokens spent: ",[544,710,711],{},"spec",[544,713,664],{},[544,715,716],{},"implementation",[544,718,657],{},[569,720,721,731],{},[572,722,723,724,727,728,604],{},"Install the Kraft plugin and run ",[544,725,726],{},"\u002Fkraft:onboard",", or run ",[544,729,730],{},"kraft admin init",[572,732,600,733,604],{},[544,734,603],{},[526,736,737,739,740,743,744,604],{},[544,738,596],{},"'s ",[544,741,742],{},"mcp server"," row checks the same thing: see ",[530,745,747],{"href":746},"\u002Ftroubleshooting\u002Fdoctor-failures#the-mcp-server-warning","The mcp server warning",[536,749,751],{"id":750},"stored-model-override-is-not-a-model-id",[544,752,753],{},"stored model override is not a model id",[526,755,756,757,760],{},"A model override on the item or a node holds text that is not a model id, such as ",[544,758,759],{},"sonnet 4",". The reason ends with the stored text.",[569,762,763,773],{},[572,764,765,766,626,769,772],{},"Run the command the reason names, ",[544,767,768],{},"kraft item set-overrides ID --clear",[544,770,771],{},"kraft item set-node-override ID --node N --clear",", or set a valid model.",[572,774,600,775,604],{},[544,776,603],{},[526,778,779],{},"Before 2.0, an override could hold any text, so an old item can still carry one.",[536,781,783],{"id":782},"add-on-could-not-be-read",[544,784,785],{},"add-on ... could not be read",[526,787,788,789,793],{},"A work item reads a ",[530,790,792],{"href":791},"\u002Fconcepts\u002Fvocabulary#add-on","Kraft add-on","'s skills and agent profiles from the version it was filed with. Before a launch, Kraft restores that version's files if they are missing, from the commit the item recorded. The reason ends with what failed:",[795,796,797,806,812],"ul",{},[572,798,799,626,802,805],{},[544,800,801],{},"locked commit \u003Ccommit> could not be fetched (network: ...)",[544,803,804],{},"(auth: ...)",": the server could not reach the collection, or git has no login for it there. A server run as a service may lack the SSH agent or credential helper your shell has.",[572,807,808,811],{},[544,809,810],{},"collection \u003Cname> is no longer in addons.yaml; add it again",": the collection was removed.",[572,813,814,817],{},[544,815,816],{},"its files no longer match the locked digest",": what the collection holds for that version changed.",[569,819,820,826],{},[572,821,822,823,604],{},"Fix what the reason names: restore the server's access to the collection, or add the collection again with ",[544,824,825],{},"kraft admin addon collection add",[572,827,600,828,830],{},[544,829,603],{},". A retry reads the same pinned version.",[526,832,833,837],{},[530,834,836],{"href":835},"\u002Freference\u002Fconfiguration\u002Faddons#restoring-a-store","Restoring a store"," says where the files come from.",[536,839,841],{"id":840},"no-username-configured",[544,842,843],{},"no user.name configured",[526,845,846,847,850],{},"The same stop names ",[544,848,849],{},"user.email"," when that is the missing one. git has no commit identity for the repo, so Kraft would not make the item's worktree: its commits would fail or carry an invented author.",[569,852,853,911],{},[572,854,855,856,903,906,907,910],{},"Set both for the user Kraft runs as, for every repo:",[857,858,863],"pre",{"className":859,"code":860,"language":861,"meta":862,"style":862},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","git config --global user.name \"Your Name\"\ngit config --global user.email you@example.com\n","bash","",[544,864,865,888],{"__ignoreMap":862},[866,867,870,874,878,882,885],"span",{"class":868,"line":869},"line",1,[866,871,873],{"class":872},"szw1H","git",[866,875,877],{"class":876},"semJd"," config",[866,879,881],{"class":880},"ssYy9"," --global",[866,883,884],{"class":876}," user.name",[866,886,887],{"class":876}," \"Your Name\"\n",[866,889,891,893,895,897,900],{"class":868,"line":890},2,[866,892,873],{"class":872},[866,894,877],{"class":876},[866,896,881],{"class":880},[866,898,899],{"class":876}," user.email",[866,901,902],{"class":876}," you@example.com\n",[904,905],"br",{},"To set them for one repo, run the same commands without ",[544,908,909],{},"--global"," inside it.",[572,912,600,913,604],{},[544,914,603],{},[536,916,918],{"id":917},"no-setup_command-declared",[544,919,920],{},"no setup_command declared",[526,922,923,924,927,928,930],{},"The repo has no ",[544,925,926],{},"setup_command",", and Kraft will not guess what to run in a fresh worktree. This is the usual first stop on a repo with no lockfile Kraft knows (see ",[530,929,306],{"href":307},"). The item stops at its first node.",[569,932,933,953,959],{},[572,934,622,935,938,939,941,942,944,945,948,949,941,951,637],{},[553,936,937],{},"setup command"," on the repo in Settings › Repos (or ",[544,940,926],{}," in ",[544,943,300],{},"). If the repo has nothing to install, tick ",[553,946,947],{},"No setup needed"," there instead (",[544,950,686],{},[544,952,300],{},[572,954,955,956,958],{},"In Settings, click ",[553,957,633],{},": until you do, the change is a draft and the retry stops again.",[572,960,600,961,604],{},[544,962,603],{},[536,964,966],{"id":965},"git-would-not-start-the-rebase","Git would not start the rebase",[526,968,969],{},"Nothing was rebased. Most often the base now tracks a file the worktree has untracked, such as a note or a script the agent never committed, and git will not overwrite it.",[569,971,972,977,980],{},[572,973,974,604],{},[544,975,976],{},"cd \"$(kraft repo path ID)\"",[572,978,979],{},"Look at the files git names, then move, delete or commit them.",[572,981,600,982,604],{},[544,983,603],{},[526,985,986,987,990,991,604],{},"A ",[544,988,989],{},"uv.lock"," the setup command wrote and nobody changed is not one of these: Kraft sets it aside for the rebase. One that an older release recorded without a digest is kept in place, in case the agent edited it: see ",[530,992,994],{"href":993},"\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate#upgrading-from-a-150-release-candidate","Upgrade from 1.4 or an older release",[536,996,998],{"id":997},"a-git-operation-is-in-progress","A git operation is in progress",[526,1000,1001],{},"The worktree holds a rebase, merge, cherry-pick, revert, bisect or autostash. A sandboxed worker can plant one to move one of your branches. A rebase of Kraft's own that was cut short (a server killed mid-rebase, or an abort that could not run) leaves one too.",[569,1003,1004,1007,1018],{},[572,1005,1006],{},"Look at the named file first. If you did not leave it there yourself, delete it as the reason says.",[572,1008,1009,1010,1013,1014,1017],{},"If deleting it leaves ",[544,1011,1012],{},"HEAD"," detached, check the item's branch out again with ",[544,1015,1016],{},"git checkout -f \u003Cbranch>",", as the reason names it. The branch still has the item's commits.",[572,1019,600,1020,604],{},[544,1021,603],{},[526,1023,1024,1025,658,1028,626,1031,1034],{},"Never run ",[544,1026,1027],{},"git rebase --abort",[544,1029,1030],{},"git merge --abort",[544,1032,1033],{},"--continue"," on it: that is what moves the branch.",[536,1036,1038],{"id":1037},"a-policy-budget-or-token-cap-refused-the-launch","A policy budget or token cap refused the launch",[526,1040,1041,1042,626,1045,1048,1049,1052],{},"A policy ",[544,1043,1044],{},"budget_usd",[544,1046,1047],{},"token_budget"," refused the next launch. The message names the scope: ",[544,1050,1051],{},"the work item",", or a node, step or task path in backticks.",[526,1054,1055,1058,1059,1061,1062,1065,1066,1068,1069,626,1072,1075,1076,658,1078,1081,1082,1084,1085,1088],{},[544,1056,1057],{},"raise-budget"," is refused for a ",[544,1060,1047],{}," or a path, and the item's page offers ",[553,1063,1064],{},"Retry"," with no raise. ",[530,1067,80],{"href":81}," has the fix for each scope: ",[553,1070,1071],{},"Raise cap",[544,1073,1074],{},"kraft item raise-budget"," for the item-wide ",[544,1077,1044],{},[544,1079,1080],{},"kraft item set-policy"," for a ",[544,1083,1047],{},", and for a cap the chain sets on a path, ",[544,1086,1087],{},"kraft item skip"," or a change to the chain.",[526,1090,1091,1092,1094],{},"The item's policy was fixed when it was filed, so editing ",[544,1093,318],{}," or the chain reaches only items filed afterwards.",[536,1096,1098],{"id":1097},"a-budget-cap-cannot-be-checked","A budget cap cannot be checked",[526,1100,1101,1102,1105,1106,1108,1109,604],{},"A launch in that scope ran on a harness that reports tokens but no cost, on a model ",[544,1103,1104],{},"prices.json"," cannot price. Kraft cannot show the scope is under its ",[544,1107,1044],{}," and will not count the launch as free. Which harnesses these are is on ",[530,1110,1112],{"href":1111},"\u002Freference\u002Fharnesses\u002Fcost-reporting#harnesses-that-report-no-cost","Harnesses that report no cost",[526,1114,1115,1116,1118,1119,1121],{},"Raising ",[544,1117,1044],{}," does not help: the stop stays while any ",[544,1120,1044],{}," applies to the scope.",[569,1123,1124,1135],{},[572,1125,1126,1127,1130,1131,1134],{},"Clear the item-wide cap with ",[544,1128,1129],{},"kraft item set-policy ID --policy budget_usd=none",". Add ",[544,1132,1133],{},"--policy token_budget=N"," to keep a bound.",[572,1136,600,1137,604],{},[544,1138,603],{},[526,1140,1141,1142,1145,1146,658,1149,1151,1152,1154,1155,1158,1159,1161,1162,1164,1165,1167],{},"The ",[544,1143,1144],{},"budget_usd=none"," fix clears a cap from the chain's own ",[544,1147,1148],{},"policy:",[544,1150,300],{}," or a ",[544,1153,318],{}," default too, but is refused under a ",[544,1156,1157],{},"maxima.work_item.budget_usd",", and does not lift a cap the chain set on a node, step or task. For those, skip that node with ",[544,1160,1087],{},", or bound that harness's scopes with ",[544,1163,1047],{}," in place of ",[544,1166,1044],{}," and file the item again.",[536,1169,1171],{"id":1170},"related","Related",[795,1173,1174,1179,1184],{},[572,1175,1176,1178],{},[530,1177,199],{"href":200},": the tables that link here, and the two waits that need no stop.",[572,1180,1181,1183],{},[530,1182,215],{"href":216},": the stops of a sandboxed item.",[572,1185,1186,1188,1189,1191],{},[530,1187,211],{"href":212},": every row ",[544,1190,596],{}," can print, and how to clear it.",[1193,1194,1195],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":862,"searchDepth":890,"depth":890,"links":1197},[1198,1199,1200,1202,1203,1204,1206,1208,1210,1211,1212,1213,1214],{"id":538,"depth":890,"text":539},{"id":607,"depth":890,"text":610},{"id":644,"depth":890,"text":1201},"declares neither test_​scopes nor test_​command",{"id":698,"depth":890,"text":701},{"id":750,"depth":890,"text":753},{"id":782,"depth":890,"text":1205},"add-​on ... could not be read",{"id":840,"depth":890,"text":1207},"no user.​name configured",{"id":917,"depth":890,"text":1209},"no setup_​command declared",{"id":965,"depth":890,"text":966},{"id":997,"depth":890,"text":998},{"id":1037,"depth":890,"text":1038},{"id":1097,"depth":890,"text":1098},{"id":1170,"depth":890,"text":1171},"The stop reasons that need more than one table row, each with what it means and the numbered fix.","md",null,{},true,{"title":203,"description":1215},"iag1wPSfaqgU_OGTqQxiEYkGP0_OifJRlagfX-YeX3M",[1223,1225],{"title":199,"path":200,"stem":201,"description":1224,"children":-1},"Find the reason a work item stopped and needs you, the fix for each, and what to do when an item waits on CI or a review.",{"title":207,"path":208,"stem":209,"description":1226,"children":-1},"Fix a `kraft` command that is not found, a server that will not start because its port is taken, and a 403 \"unexpected Host\" from a webhook or proxy.",1791801167422]