{"version":"2.1.228","anchor":"a-failing-checkout-hook-skips-that-repo-instead-of-ending-th","canonical_anchor":"a-failing-checkout-hook-skips-that-repo-instead-of-ending-th","heading":"A failing checkout hook skips that repo instead of ending the session","tier":"notice","area":"Self-Hosted Runner","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.228\/e\/a-failing-checkout-hook-skips-that-repo-instead-of-ending-th","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.228","markdown":"### A failing checkout hook skips that repo instead of ending the session\n\nA failing checkout hook now skips that repo and cleans up instead of ending the session.\n\n**What**\n\nIf a checkout hook fails for a repository that has no push target configured, the runner now skips that source and carries on, cleaning up the partial checkout, rather than aborting the whole session.\n\n**Details**\n\n- If the partial checkout directory cannot be deleted, or its name collides with a prepared checkout only by letter case on a case-insensitive filesystem, it is left in place and you are warned that its contents may still be visible. Removal is retried when the session ends.\n- Hook failures now carry the hook's exit code.\n\n**Evidence**\n\n`CheckoutHookFailedError`\n\n- Area: Self-Hosted Runner\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 2\/5"}