[{"data":1,"prerenderedAt":334},["ShallowReactive",2],{"navigation":3,"\u002Foperations\u002Frecovery":194,"\u002Foperations\u002Frecovery-surround":329},[4,18,31,64,81,102,111,132,149],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting started","\u002Fgetting-started","1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Run your first workflow","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Core concepts","\u002Fconcepts","2.concepts",[23,27],{"title":24,"path":25,"stem":26},"The platform model","\u002Fconcepts\u002Fplatform","2.concepts\u002F1.platform",{"title":28,"path":29,"stem":30},"Architecture and boundaries","\u002Fconcepts\u002Farchitecture","2.concepts\u002F2.architecture",{"title":32,"path":33,"stem":34,"children":35,"page":17},"Installation","\u002Finstallation","3.installation",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Overview and requirements","\u002Finstallation\u002Foverview","3.installation\u002F1.overview",{"title":41,"path":42,"stem":43},"Local evaluation","\u002Finstallation\u002Flocal-evaluation","3.installation\u002F2.local-evaluation",{"title":45,"path":46,"stem":47},"Install the server","\u002Finstallation\u002Fserver","3.installation\u002F3.server",{"title":49,"path":50,"stem":51},"Install a runner","\u002Finstallation\u002Frunner","3.installation\u002F4.runner",{"title":53,"path":54,"stem":55},"Verify the installation","\u002Finstallation\u002Fverification","3.installation\u002F5.verification",{"title":57,"path":58,"stem":59},"Upgrade the platform","\u002Finstallation\u002Fupgrades","3.installation\u002F6.upgrades",{"title":61,"path":62,"stem":63},"Guided installer","\u002Finstallation\u002Finstaller","3.installation\u002F7.installer",{"title":65,"path":66,"stem":67,"children":68,"page":17},"Build workflows","\u002Fworkflows","4.workflows",[69,73,77],{"title":70,"path":71,"stem":72},"Build a Definition","\u002Fworkflows\u002Fdefinitions","4.workflows\u002F0.definitions",{"title":74,"path":75,"stem":76},"Deploy and run workflows","\u002Fworkflows\u002Fruns","4.workflows\u002F1.runs",{"title":78,"path":79,"stem":80},"Inputs, context, and secrets","\u002Fworkflows\u002Finputs-and-secrets","4.workflows\u002F2.inputs-and-secrets",{"title":82,"path":83,"stem":84,"children":85,"page":17},"Run and recover","\u002Foperations","5.operations",[86,90,94,98],{"title":87,"path":88,"stem":89},"Monitor Runs","\u002Foperations\u002Fmonitoring","5.operations\u002F1.monitoring",{"title":91,"path":92,"stem":93},"Approve prepared steps","\u002Foperations\u002Fapprovals","5.operations\u002F2.approvals",{"title":95,"path":96,"stem":97},"Recover or cancel execution","\u002Foperations\u002Frecovery","5.operations\u002F3.recovery",{"title":99,"path":100,"stem":101},"Troubleshooting","\u002Foperations\u002Ftroubleshooting","5.operations\u002F4.troubleshooting",{"title":103,"path":104,"stem":105,"children":106,"page":17},"Action catalog","\u002Fcatalog","6.catalog",[107],{"title":108,"path":109,"stem":110},"Find and use Actions","\u002Fcatalog\u002Foverview","6.catalog\u002F1.overview",{"title":112,"path":113,"stem":114,"children":115,"page":17},"Administration","\u002Fadministration","7.administration",[116,120,124,128],{"title":117,"path":118,"stem":119},"Registries and Environments","\u002Fadministration\u002Fenvironments","7.administration\u002F2.environments",{"title":121,"path":122,"stem":123},"Manage runners","\u002Fadministration\u002Frunners","7.administration\u002F3.runners",{"title":125,"path":126,"stem":127},"Access and approval policies","\u002Fadministration\u002Faccess","7.administration\u002F4.access",{"title":129,"path":130,"stem":131},"Backups and upgrades","\u002Fadministration\u002Fmaintenance","7.administration\u002F5.maintenance",{"title":133,"path":134,"stem":135,"children":136,"page":17},"Develop Actions","\u002Factions","8.actions",[137,141,145],{"title":138,"path":139,"stem":140},"Build your first Action","\u002Factions\u002Fquickstart","8.actions\u002F1.quickstart",{"title":142,"path":143,"stem":144},"Local development","\u002Factions\u002Flocal-development","8.actions\u002F2.local-development",{"title":146,"path":147,"stem":148},"Publish an Action","\u002Factions\u002Fpublishing","8.actions\u002F3.publishing",{"title":150,"path":151,"stem":152,"children":153,"page":17},"Reference","\u002Freference","9.reference",[154,158,162,166,170,174,178,182,186,190],{"title":155,"path":156,"stem":157},"Operator CLI","\u002Freference\u002Foperator-cli","9.reference\u002F1.operator-cli",{"title":159,"path":160,"stem":161},"Installer CLI","\u002Freference\u002Finstaller-cli","9.reference\u002F10.installer-cli",{"title":163,"path":164,"stem":165},"Definition syntax","\u002Freference\u002Fdefinition","9.reference\u002F2.definition",{"title":167,"path":168,"stem":169},"CLI configuration","\u002Freference\u002Fconfiguration","9.reference\u002F3.configuration",{"title":171,"path":172,"stem":173},"API integration","\u002Freference\u002Fapi","9.reference\u002F4.api",{"title":175,"path":176,"stem":177},"Action CLI","\u002Freference\u002Faction-cli","9.reference\u002F5.action-cli",{"title":179,"path":180,"stem":181},"Action SDK","\u002Freference\u002Fsdk","9.reference\u002F6.sdk",{"title":183,"path":184,"stem":185},"Contracts and compatibility","\u002Freference\u002Fcontracts","9.reference\u002F7.contracts",{"title":187,"path":188,"stem":189},"Server configuration","\u002Freference\u002Fserver-configuration","9.reference\u002F8.server-configuration",{"title":191,"path":192,"stem":193},"Runner configuration","\u002Freference\u002Frunner-configuration","9.reference\u002F9.runner-configuration",{"id":195,"title":95,"body":196,"description":323,"extension":324,"meta":325,"navigation":326,"path":96,"seo":327,"stem":97,"__hash__":328},"docs\u002F5.operations\u002F3.recovery.md",{"type":197,"value":198,"toc":316},"minimark",[199,212,217,234,237,240,244,253,256,260,276,283,287,294,297,301,312],[200,201,202,203,207,208,211],"p",{},"Start by inspecting ",[204,205,206],"code",{},"pyplines run info ID",", ",[204,209,210],{},"run attempts ID",", and the relevant logs. Determine both why the step stopped and what it may already have changed outside Pyplines.",[213,214,216],"h2",{"id":215},"retry-a-blocked-step","Retry a blocked step",[218,219,225],"pre",{"className":220,"code":221,"filename":222,"language":223,"meta":224,"style":224},"language-sh shiki shiki-themes pyplines-light pyplines-light pyplines-dark","pyplines run retry 42 --step restart\n","Terminal","sh","",[204,226,227],{"__ignoreMap":224},[228,229,232],"span",{"class":230,"line":231},"line",1,[228,233,221],{},[200,235,236],{},"Retry is permitted only for a settled blocked step. It re-prepares that step using current configuration and policy, retaining the earlier attempt. Successful steps are not replayed. New approvals may be required.",[200,238,239],{},"Review the Action's documented retry behavior and the external system's state first. A failed Action may already have performed part of its work. Retrying does not make a non-idempotent operation safe or undo its previous effects.",[213,241,243],{"id":242},"skip-a-blocked-step","Skip a blocked step",[218,245,247],{"className":220,"code":246,"filename":222,"language":223,"meta":224,"style":224},"pyplines run skip 42 --step restart --reason 'Service was restored through the incident procedure'\n",[204,248,249],{"__ignoreMap":224},[228,250,251],{"class":230,"line":231},[228,252,246],{},[200,254,255],{},"Skipping requires recovery access, policy permission, a reason, and settled execution. A skipped step has no outputs. If a later step requires those outputs, that later step can block; inspect the Definition before choosing this path.",[213,257,259],{"id":258},"cancel-a-run","Cancel a Run",[218,261,263],{"className":220,"code":262,"filename":222,"language":223,"meta":224,"style":224},"pyplines run cancel 42\npyplines run status 42 --watch\n",[204,264,265,270],{"__ignoreMap":224},[228,266,267],{"class":230,"line":231},[228,268,269],{},"pyplines run cancel 42\n",[228,271,273],{"class":230,"line":272},2,[228,274,275],{},"pyplines run status 42 --watch\n",[200,277,278,279,282],{},"Cancellation requests a stop and prevents further work. It does not undo completed external effects. A Run can remain ",[204,280,281],{},"cancelling"," while the server waits to establish that execution has stopped. The CLI watch exits unsuccessfully for a cancelled Run because cancellation is not successful workflow completion.",[213,284,286],{"id":285},"handle-uncertain-execution","Handle uncertain execution",[200,288,289,290,293],{},"A lost runner heartbeat can leave an attempt ",[204,291,292],{},"uncertain",". The container may still be executing. Ownership does not expire into reassignment, and retry or skip cannot proceed until execution settles.",[200,295,296],{},"Restore the original runner's connection and state so it can reconcile its container. Do not create a replacement Run as a way to bypass uncertainty. If the host is permanently lost, external fencing and a separately designed administrative recovery mechanism are required; the current release has no automatic or documented force-reassignment command.",[213,298,300],{"id":299},"preserve-evidence","Preserve evidence",[200,302,303,304,307,308,311],{},"Use ",[204,305,306],{},"run history"," to inspect decisions and ",[204,309,310],{},"run attempts"," to distinguish executions. Correcting a Definition and deploying it creates a new revision; it does not rewrite the blocked Run. Decide whether to recover that Run or settle it and intentionally start a new one.",[313,314,315],"style",{},"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":224,"searchDepth":272,"depth":272,"links":317},[318,319,320,321,322],{"id":215,"depth":272,"text":216},{"id":242,"depth":272,"text":243},{"id":258,"depth":272,"text":259},{"id":285,"depth":272,"text":286},{"id":299,"depth":272,"text":300},"Make explicit recovery decisions while retaining prior attempts.","md",{},true,{"title":95,"description":323},"7qfUBX96V_MJA2RgHoG4NwY8TSR9dtFomtoFeMvECvM",[330,332],{"title":91,"path":92,"stem":93,"description":331,"children":-1},"Review the exact work authorized by an approval.",{"title":99,"path":100,"stem":101,"description":333,"children":-1},"Locate failures across connection, deployment, preparation, and execution.",1792213697439]