A runner calls this once when outerlayer runner start, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for host in the key’s factory, replacing the host’s earlier report. check names the failed step (docker, hooks, image, host-key, identity, credentials, pid-file, cgroup or recovery). message is the runner’s error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory’s own API does not list it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OuterLayer","description":"An open-source software factory: issue in, reviewed and verified code out, on your agents, in your repos.","colors":{"primary":"#2065D1","light":"#4C8DEE","dark":"#1A55B8"},"logo":{"light":"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/logo/light.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=de563af4ba1bc24d13a1c4a7485a2182","dark":"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/logo/dark.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=13e7346de4086ea4a5f7e83a85e7a072"},"favicon":"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/favicon.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=adddaf2c470259ec7193c6bd26a95252","appearance":{"default":"system"},"background":{"color":{"light":"#FAFAF9","dark":"#131312"}},"navbar":{"links":[{"href":"/changelog","label":"Changelog"},{"href":"https://github.com/outerlayerai/outerlayer","label":"GitHub"}],"primary":{"type":"button","label":"Open the app","href":"https://app.outerlayer.ai"}},"footer":{"socials":{"github":"https://github.com/outerlayerai/outerlayer","website":"https://www.outerlayer.ai"}},"fonts":{"family":"Geist"},"styling":{"codeblocks":"system","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"outerlayer-stg","hasAudioNarration":false,"actualSubdomain":"outerlayer-stg","customDomains":["docs-stg.outerlayer.ai"],"gitSource":{"type":"github","owner":"outerlayerai","repo":"outerlayer","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6adc00a695316681f42fb299","collectionId":"9c61408d-e3b3-465d-8aad-527066ab21c4","liveDeploymentHistoryId":"6adc00a695316681f42fb299","schemaVersion":"v3"},"entitlements":{},"buildId":"6adc0892d4a9e6507a1bb1c7","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API reference","count":98},{"language":"default","tag":"Endpoints","count":96},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"Work Items","count":26},{"language":"default","tag":"CLI reference","count":13},{"language":"default","tag":"Apps","count":13},{"language":"default","tag":"Run builds","count":12},{"language":"default","tag":"Commands","count":9},{"language":"default","tag":"Org Management","count":9},{"language":"default","tag":"Work on an item","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n.font-mono,code,kbd,pre,samp{font-family:\"JetBrains Mono\",ui-monospace,SFMono-Regular,Menlo,monospace}.status-icon{display:inline-block;width:1.05em;height:1.05em;margin-right:.35em;vertical-align:-.17em;color:#61656f}.status-icon-not_picked_up,.status-icon-with_agent{color:#b26a00}.status-icon-ready_for_review{color:#2e7d32}.status-icon-approved{color:#4f55c9}.status-icon-needs_attention{color:#c62828}.status-icon-dot{fill:#c2410c}.dark .status-icon{color:#9a9eab}.dark .status-icon-not_picked_up,.dark .status-icon-with_agent{color:#f0a742}.dark .status-icon-ready_for_review{color:#6cc070}.dark .status-icon-approved{color:#959bf2}.dark .status-icon-needs_attention{color:#f2827a}.dark .status-icon-dot{fill:#f08a4b}"}],"page":{"pagePath":"api-reference/hosts/report-a-runner-start-that-failed-a-check","slug":"/api-reference/hosts/report-a-runner-start-that-failed-a-check","pageMetadata":{"title":"Report a runner start that failed a check","description":"A runner calls this once when `outerlayer runner start`, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for `host` in the key's factory, replacing the host's earlier report. `check` names the failed step (`docker`, `hooks`, `image`, `host-key`, `identity`, `credentials`, `pid-file`, `cgroup` or `recovery`). `message` is the runner's error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory's own API does not list it.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/hosts/startup-report","href":"/api-reference/hosts/report-a-runner-start-that-failed-a-check","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"A runner calls this once when \", _jsx(_components.code, {\n children: \"outerlayer runner start\"\n }), \", or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for \", _jsx(_components.code, {\n children: \"host\"\n }), \" in the key’s factory, replacing the host’s earlier report. \", _jsx(_components.code, {\n children: \"check\"\n }), \" names the failed step (\", _jsx(_components.code, {\n children: \"docker\"\n }), \", \", _jsx(_components.code, {\n children: \"hooks\"\n }), \", \", _jsx(_components.code, {\n children: \"image\"\n }), \", \", _jsx(_components.code, {\n children: \"host-key\"\n }), \", \", _jsx(_components.code, {\n children: \"identity\"\n }), \", \", _jsx(_components.code, {\n children: \"credentials\"\n }), \", \", _jsx(_components.code, {\n children: \"pid-file\"\n }), \", \", _jsx(_components.code, {\n children: \"cgroup\"\n }), \" or \", _jsx(_components.code, {\n children: \"recovery\"\n }), \"). \", _jsx(_components.code, {\n children: \"message\"\n }), \" is the runner’s error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory’s own API does not list it.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Report a runner start that failed a check","description":"A runner calls this once when `outerlayer runner start`, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for `host` in the key's factory, replacing the host's earlier report. `check` names the failed step (`docker`, `hooks`, `image`, `host-key`, `identity`, `credentials`, `pid-file`, `cgroup` or `recovery`). `message` is the runner's error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory's own API does not list it.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/hosts/startup-report","href":"/api-reference/hosts/report-a-runner-start-that-failed-a-check","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"A runner calls this once when `outerlayer runner start`, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for `host` in the key's factory, replacing the host's earlier report. `check` names the failed step (`docker`, `hooks`, `image`, `host-key`, `identity`, `credentials`, `pid-file`, `cgroup` or `recovery`). `message` is the runner's error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory's own API does not list it.","operationId":"record-startup-report","parameters":["8d389e90-adf1-41e0-a023-8b876833d6fb","9a348139-1319-4b16-a67f-fdbb334d058b","08e55780-495f-424b-a5a1-284e1d222129"],"requestBody":"3d401f69-a0c6-4974-89da-ca3fee5d03b9","responses":{"200":"00f424cc-3f2f-4c50-b28a-f674c57dd264","400":"3ea479b8-f3aa-48a1-b5af-b88f2495d714","401":"40d1c249-50ef-47c7-8515-f973e4d8c2a1","403":"895e01ae-7fc1-4191-b986-57a9b6bb8f5b"},"summary":"Report a runner start that failed a check","tags":["Hosts"],"method":"post","type":"path","servers":["b16e55e4-227b-47b0-87e9-4b4fa14ca7ef","8fdbd44b-b9c6-46d8-a7be-cda173f0b0cc"],"security":["b6cd3cb3-eb6e-4f82-8871-ba5345cd8ddc"],"path":"/v1/hosts/startup-report","baseUrlOptions":["https://api.outerlayer.ai","http://localhost:9418"],"title":"Report a runner start that failed a check","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"8d389e90-adf1-41e0-a023-8b876833d6fb":{"description":"HTTP Message Signature (RFC 9421) made with the runner key's host key: `runner=:\u003cbase64>:`.","in":"header","name":"Signature","required":false,"schema":{"description":"HTTP Message Signature (RFC 9421) made with the runner key's host key: `runner=:\u003cbase64>:`.","type":"string","isRequired":false,"uniqueKey":"","typeLabel":"string"}},"9a348139-1319-4b16-a67f-fdbb334d058b":{"description":"The signature's covered components and parameters: `runner=(\"@method\" \"@path\" \"@query\" \"content-digest\");created=\u003cunix seconds>;nonce=\"\u003crandom>\";keyid=\"\u003chost key fingerprint>\";alg=\"ed25519\"`.","in":"header","name":"Signature-Input","required":false,"schema":{"description":"The signature's covered components and parameters: `runner=(\"@method\" \"@path\" \"@query\" \"content-digest\");created=\u003cunix seconds>;nonce=\"\u003crandom>\";keyid=\"\u003chost key fingerprint>\";alg=\"ed25519\"`.","type":"string","isRequired":false,"uniqueKey":"","typeLabel":"string"}},"08e55780-495f-424b-a5a1-284e1d222129":{"description":"RFC 9530 digest of the request body, always sent, including for a request with none: `sha-256=:\u003cbase64>:`.","in":"header","name":"Content-Digest","required":false,"schema":{"description":"RFC 9530 digest of the request body, always sent, including for a request with none: `sha-256=:\u003cbase64>:`.","type":"string","isRequired":false,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"check":{"maxLength":64,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"check","typeLabel":"string"},"cliVersion":{"maxLength":100,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"cliVersion","typeLabel":"string"},"host":{"maxLength":255,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"host","typeLabel":"string"},"message":{"maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["host","cliVersion","check","message"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"check":"\u003cstring>","cliVersion":"\u003cstring>","host":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"00f424cc-3f2f-4c50-b28a-f674c57dd264":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"recorded":{"enum":[true],"type":"boolean","isRequired":true,"uniqueKey":"data.recorded","typeLabel":"enum\u003cboolean>"}},"required":["recorded"],"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"recorded":true}}}},"exampleType":"generated"}},"description":"The report is stored.","exampleType":"generated"},"3ea479b8-f3aa-48a1-b5af-b88f2495d714":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"A malformed report body.","exampleType":"generated"},"40d1c249-50ef-47c7-8515-f973e4d8c2a1":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Missing or invalid API key, or a runner key's signature was refused: `runner_key_signature_required` (the request carries no signature), `runner_key_signature_invalid` (it does not verify against the host key the key is bound to, or the body does not match its digest), `runner_key_signature_stale` (`created` is more than five minutes from the gateway's clock) or `runner_key_signature_replayed` (the nonce was accepted in the last five minutes).","exampleType":"generated"},"895e01ae-7fc1-4191-b986-57a9b6bb8f5b":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"The caller lacks hosts.ingest.","exampleType":"generated"}},"security":{"b6cd3cb3-eb6e-4f82-8871-ba5345cd8ddc":{"AppId":{"description":"Factory id the request is scoped to.","in":"header","name":"X-Outerlayer-App-Id","type":"apiKey","scopes":[],"schemeName":"AppId"},"BearerAuth":{"description":"API key (sk_outerlayer_*)","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"b16e55e4-227b-47b0-87e9-4b4fa14ca7ef":{"description":"Production (OuterLayer Cloud)","url":"https://api.outerlayer.ai"},"8fdbd44b-b9c6-46d8-a7be-cda173f0b0cc":{"description":"Local dev server (self-hosted gateway)","url":"http://localhost:9418"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Factory id the request is scoped to.","in":"header","name":"X-Outerlayer-App-Id","type":"apiKey","scopes":[],"schemeName":"AppId"},"schema":{"title":"X-Outerlayer-App-Id","type":"string","description":"Factory id the request is scoped to.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"AppId","name":"X-Outerlayer-App-Id"},{"scheme":{"description":"API key (sk_outerlayer_*)","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key (sk_outerlayer_*)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"AppId \u0026 BearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"outerlayer-stg","siteName":"OuterLayer","title":"Report a runner start that failed a check - OuterLayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T17:23:17.913Z","originalFileLocation":"api-reference/hosts/report-a-runner-start-that-failed-a-check.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"A runner calls this once when outerlayer runner start, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for host in the key\u0026#x27;s factory, replacing the host\u0026#x27;s earlier report. check names the failed step (docker, hooks, image, host-key, identity, credentials, pid-file, cgroup or recovery). message is the runner\u0026#x27;s error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory\u0026#x27;s own API does not list it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OuterLayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Report a runner start that failed a check - OuterLayer\">\u003cmeta data-mint-head property=\"og:description\" content=\"A runner calls this once when outerlayer runner start, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for host in the key\u0026#x27;s factory, replacing the host\u0026#x27;s earlier report. check names the failed step (docker, hooks, image, host-key, identity, credentials, pid-file, cgroup or recovery). message is the runner\u0026#x27;s error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory\u0026#x27;s own API does not list it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OuterLayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://outerlayer-stg.mintlify.app/_mintlify/api/og/v2?division=Hosts\u0026amp;title=Report+a+runner+start+that+failed+a+check\u0026amp;description=A+runner+calls+this+once+when+%60outerlayer+runner+start%60%2C+or+the+start+of+the+runner+image%2C+fails+a+start-up+check+before+its+first+heartbeat.+Stores+one+report+\u0026amp;theme=e9829cd6b2b3caa26c4296ba\u0026amp;signature=0cc728d291ec1df104f80fd24ee5088898e9c92919dac60a56dfd4e4f7a7e3b2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Report a runner start that failed a check - OuterLayer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A runner calls this once when outerlayer runner start, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for host in the key\u0026#x27;s factory, replacing the host\u0026#x27;s earlier report. check names the failed step (docker, hooks, image, host-key, identity, credentials, pid-file, cgroup or recovery). message is the runner\u0026#x27;s error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory\u0026#x27;s own API does not list it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://outerlayer-stg.mintlify.app/_mintlify/api/og/v2?division=Hosts\u0026amp;title=Report+a+runner+start+that+failed+a+check\u0026amp;description=A+runner+calls+this+once+when+%60outerlayer+runner+start%60%2C+or+the+start+of+the+runner+image%2C+fails+a+start-up+check+before+its+first+heartbeat.+Stores+one+report+\u0026amp;theme=e9829cd6b2b3caa26c4296ba\u0026amp;signature=0cc728d291ec1df104f80fd24ee5088898e9c92919dac60a56dfd4e4f7a7e3b2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/outerlayer-stg/FkFLtaVKBgCUe_rr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OuterLayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2065D1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/hosts/report-a-runner-start-that-failed-a-check.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs-stg.outerlayer.ai/#organization\",\"name\":\"OuterLayer\",\"url\":\"https://docs-stg.outerlayer.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/outerlayer-stg/h46SL2WH_1X-gmFL/logo/light.svg?fit=max\u0026auto=format\u0026n=h46SL2WH_1X-gmFL\u0026q=85\u0026s=de563af4ba1bc24d13a1c4a7485a2182\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs-stg.outerlayer.ai#website\",\"name\":\"OuterLayer\",\"url\":\"https://docs-stg.outerlayer.ai\",\"publisher\":{\"@id\":\"https://docs-stg.outerlayer.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check#webpage\",\"url\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check\",\"name\":\"Report a runner start that failed a check\",\"description\":\"A runner calls this once when outerlayer runner start, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for host in the key's factory, replacing the host's earlier report. check names the failed step (docker, hooks, image, host-key, identity, credentials, pid-file, cgroup or recovery). message is the runner's error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory's own API does not list it.\",\"dateModified\":\"2026-10-23T17:23:17.913Z\",\"isPartOf\":{\"@id\":\"https://docs-stg.outerlayer.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs-stg.outerlayer.ai/api-reference/oauth/oauth-protected-resource-metadata\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hosts\",\"item\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/list-the-factorys-runner-hosts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Report a runner start that failed a check\",\"item\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check#apireference\",\"headline\":\"Report a runner start that failed a check\",\"name\":\"Report a runner start that failed a check\",\"description\":\"A runner calls this once when outerlayer runner start, or the start of the runner image, fails a start-up check before its first heartbeat. Stores one report for host in the key's factory, replacing the host's earlier report. check names the failed step (docker, hooks, image, host-key, identity, credentials, pid-file, cgroup or recovery). message is the runner's error text with secrets removed, at most 500 characters. The platform staff who support the factory read it; the factory's own API does not list it.\",\"url\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check\",\"mainEntityOfPage\":{\"@id\":\"https://docs-stg.outerlayer.ai/api-reference/hosts/report-a-runner-start-that-failed-a-check#webpage\"},\"dateModified\":\"2026-10-23T17:23:17.913Z\",\"publisher\":{\"@id\":\"https://docs-stg.outerlayer.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs-stg.outerlayer.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OuterLayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OuterLayer","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"CLI reference","pages":[{"title":"CLI reference","href":"/reference/cli"}]},{"tab":"API reference","groups":[{"group":"Get started","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Organization API","href":"/organization-api"}]},{"group":"Endpoints","pages":[{"group":"OAuth","pages":[{"title":"OAuth protected-resource metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /.well-known/oauth-protected-resource","href":"/api-reference/oauth/oauth-protected-resource-metadata"},{"title":"OAuth protected-resource metadata for the per-app MCP mount","deprecated":null,"version":null,"openapi":"/openapi.yaml get /.well-known/oauth-protected-resource/v1/apps/{appId}/mcp","href":"/api-reference/oauth/oauth-protected-resource-metadata-for-the-per-app-mcp-mount"}]},{"group":"Health","pages":[{"title":"Service health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /health","href":"/api-reference/health/service-health"},{"title":"Files health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/health/files","href":"/api-reference/health/files-health"},{"title":"Ingestion health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/health/ingestion","href":"/api-reference/health/ingestion-health"}]},{"group":"Agents","pages":[{"title":"Fetch an agent session image blob via a signed token","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agents/blob-token/{token}","href":"/api-reference/agents/fetch-an-agent-session-image-blob-via-a-signed-token"},{"title":"Fetch an agent session image blob","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agents/blob/{sha256}","href":"/api-reference/agents/fetch-an-agent-session-image-blob"},{"title":"Ingest coding-agent sessions (outerlayer sync)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agents/sync","href":"/api-reference/agents/ingest-coding-agent-sessions-outerlayer-sync"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Revoke API key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/api-keys/{apiKeyId}","href":"/api-reference/api-keys/revoke-api-key"},{"title":"Change API key permissions","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/api-keys/{apiKeyId}","href":"/api-reference/api-keys/change-api-key-permissions"},{"title":"Clear a runner key's host binding","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/api-keys/{apiKeyId}/host-key","href":"/api-reference/api-keys/clear-a-runner-keys-host-binding"}]},{"group":"Apps","pages":[{"title":"List apps","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps","href":"/api-reference/apps/list-apps"},{"title":"Create app","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/apps","href":"/api-reference/apps/create-app"},{"title":"Get app","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}","href":"/api-reference/apps/get-app"},{"title":"Delete app","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}","href":"/api-reference/apps/delete-app"},{"title":"Update app","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/apps/{appId}","href":"/api-reference/apps/update-app"},{"title":"Get git connection status for an app","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git","href":"/api-reference/apps/get-git-connection-status-for-an-app"},{"title":"List branches in a repository","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git/branches","href":"/api-reference/apps/list-branches-in-a-repository"},{"title":"Mint an OAuth authorization URL for git-provider connect","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/apps/{appId}/git/connect","href":"/api-reference/apps/mint-an-oauth-authorization-url-for-git-provider-connect"},{"title":"Link a repository and branch to an app","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/apps/{appId}/git/link","href":"/api-reference/apps/link-a-repository-and-branch-to-an-app"},{"title":"Clear the linked repository and branch","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}/git/link","href":"/api-reference/apps/clear-the-linked-repository-and-branch"},{"title":"List every repository linked to the factory, with its branches","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git/links","href":"/api-reference/apps/list-every-repository-linked-to-the-factory-with-its-branches"},{"title":"List repositories accessible to the app's git installations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/apps/{appId}/git/repositories","href":"/api-reference/apps/list-repositories-accessible-to-the-apps-git-installations"},{"title":"Remove a GitHub organization from the factory","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/apps/{appId}/installations/{installationId}","href":"/api-reference/apps/remove-a-github-organization-from-the-factory"}]},{"group":"Artifacts","pages":[{"title":"Emit an artifact (evidence for a pull request)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/artifacts","href":"/api-reference/artifacts/emit-an-artifact-evidence-for-a-pull-request"}]},{"group":"Capabilities","pages":[{"title":"Get capabilities","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/capabilities","href":"/api-reference/capabilities/get-capabilities"}]},{"group":"Context","pages":[{"title":"List context changes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/context/changes","href":"/api-reference/context/list-context-changes"},{"title":"Get the context a build receives","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/context/delivery","href":"/api-reference/context/get-the-context-a-build-receives"},{"title":"Get control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/context/source","href":"/api-reference/context/get-control-plane"},{"title":"Read a factory's control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/apps/{appId}/context-source","href":"/api-reference/context/read-a-factorys-control-plane"},{"title":"Designate a factory's control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/orgs/{orgName}/apps/{appId}/context-source","href":"/api-reference/context/designate-a-factorys-control-plane"},{"title":"Revoke a factory's control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/orgs/{orgName}/apps/{appId}/context-source","href":"/api-reference/context/revoke-a-factorys-control-plane"}]},{"group":"Criteria","pages":[{"title":"Record a work item's acceptance criteria","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/criteria","href":"/api-reference/criteria/record-a-work-items-acceptance-criteria"}]},{"group":"Emitted Results","pages":[{"title":"Emit a check result (pass/fail evidence for a work item)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/emitted-results","href":"/api-reference/emitted-results/emit-a-check-result-passfail-evidence-for-a-work-item"},{"title":"Change a check's status","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/emitted-results/{emittedResultId}/status","href":"/api-reference/emitted-results/change-a-checks-status"}]},{"group":"Findings","pages":[{"title":"Record a batch of findings on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/findings","href":"/api-reference/findings/record-a-batch-of-findings-on-a-work-item"},{"title":"Findings and time lost per category","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/findings/summary","href":"/api-reference/findings/findings-and-time-lost-per-category"},{"title":"Rank a factory's problems","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/problems","href":"/api-reference/findings/rank-a-factorys-problems"},{"title":"One problem with its findings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/problems/{problemId}","href":"/api-reference/findings/one-problem-with-its-findings"},{"title":"A work item's findings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/findings","href":"/api-reference/findings/a-work-items-findings"}]},{"group":"Hosts","pages":[{"title":"List the factory's runner hosts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/hosts","href":"/api-reference/hosts/list-the-factorys-runner-hosts"},{"title":"Report a heartbeat from a runner host","description":"Upserts one row for `host`, stamping the platform's own clock for the heartbeat time and, when `workRequest` is present, for the last success or the last error. `runnerProtocol` is the gateway contract the runner was built against; a heartbeat without it is stored as 0, below every minimum. `workRequest` is omitted when this poll made no request for work; its error, when present, is only what the platform already returned to this host. `lastUpdate` is the runner's last self-update; omitted, it leaves the stored one as it was. `lowDisk` is the free and needed bytes of a runner that holds off new work for want of disk; omitted, it clears the stored figures. `blocked` is the reason a runner claims nothing because a check of its own failed (no `/dev/kvm`, no Claude credential, a placeholder command, builds that do not fit in memory); omitted, it clears the stored reason. `state` is what the runner is doing now (taking-work, draining, restarting, holding-for-update, blocked or low-disk), `waitingItems` the items a draining runner waits on, and `takes` the queues it polls and its repository include and exclude patterns, with `truncated` set when the runner cut a list; each, omitted, clears what was stored. Answers with the host in the same shape `GET /v1/hosts` lists it in, plus `runnerVersion` and `stops`: the live claims this host holds that a person asked to stop, each with the requester's name and note, which the runner ends and releases as `stopped`. `runnerVersion` is the `@outerlayer/cli` version the factory's runner update setting picks: the version this gateway names (`follow`, the default), the runner's own `cliVersion` (`paused`), or the held version (`pinned`). The gateway names the higher of the version stored in its database and the version it was built from. It never names a version below the lowest that may claim, so a runner can always reach a version the gateway accepts. `selfUpdate` says whether the runner can update itself and, when it cannot, why; omitted, it clears the stored value. The host in the answer carries `support`, where the runner stands against the support window.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/hosts/heartbeat","href":"/api-reference/hosts/report-a-heartbeat-from-a-runner-host"},{"title":"Report a runner start that failed a check","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/hosts/startup-report","href":"/api-reference/hosts/report-a-runner-start-that-failed-a-check"}]},{"group":"Account","pages":[{"title":"List the factories the login token can use","description":"Lists every factory where the login token's owner has an active membership and can act, with the organization it belongs to. Needs only a login token, and no factory named: a factory key is refused with 401. With `repository`, each factory also says whether that repository is linked to it: `true`, `false`, or `null` where the owner lacks `git.read`. `repository` is the checkout's remote, such as `github.com/acme/app`; the match ignores case and the host prefix for GitHub.com repositories. With `repository`, each factory also carries `owner`: `true` for the factory whose connection to the repository is the oldest among the factories of its organization that link it, `false` otherwise.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/me/factories","href":"/api-reference/account/list-the-factories-the-login-token-can-use"}]},{"group":"Metrics","pages":[{"title":"Get a cost/session/error breakdown by dimension","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/breakdown","href":"/api-reference/metrics/get-a-costsessionerror-breakdown-by-dimension"},{"title":"Compare metrics across two windows","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/compare","href":"/api-reference/metrics/compare-metrics-across-two-windows"},{"title":"Get per-model stats","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/models","href":"/api-reference/metrics/get-per-model-stats"},{"title":"Get fleet overview","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/overview","href":"/api-reference/metrics/get-fleet-overview"},{"title":"Get the daily sessions/cost/quality trend","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/metrics/trends","href":"/api-reference/metrics/get-the-daily-sessionscostquality-trend"}]},{"group":"Org Management","pages":[{"title":"List an org's audit log","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/audit-log","href":"/api-reference/org-management/list-an-orgs-audit-log"},{"title":"Export an org's audit log as CSV","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/audit-log/export","href":"/api-reference/org-management/export-an-orgs-audit-log-as-csv"},{"title":"Get one audit log entry","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/audit-log/{logId}","href":"/api-reference/org-management/get-one-audit-log-entry"},{"title":"List org members and pending invites","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/members","href":"/api-reference/org-management/list-org-members-and-pending-invites"},{"title":"Invite an org member","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/orgs/{orgName}/members/invites","href":"/api-reference/org-management/invite-an-org-member"},{"title":"Resend a pending invite","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/orgs/{orgName}/members/invites/{inviteId}/resend","href":"/api-reference/org-management/resend-a-pending-invite"},{"title":"Remove a member from the org","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/orgs/{orgName}/members/{userId}","href":"/api-reference/org-management/remove-a-member-from-the-org"},{"title":"Change a member's role","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/orgs/{orgName}/members/{userId}","href":"/api-reference/org-management/change-a-members-role"},{"title":"List built-in org roles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/orgs/{orgName}/roles","href":"/api-reference/org-management/list-built-in-org-roles"}]},{"group":"Pricing","pages":[{"title":"Get LLM pricing","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/pricing","href":"/api-reference/pricing/get-llm-pricing"}]},{"group":"PRs","pages":[{"title":"Get session→PR attribution merged with cost","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prs/outcomes","href":"/api-reference/prs/get-session→pr-attribution-merged-with-cost"}]},{"group":"Repositories","pages":[{"title":"Report the GitHub App access builds need on each of the factory's repositories","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/repositories/access","href":"/api-reference/repositories/report-the-github-app-access-builds-need-on-each-of-the-factorys-repositories"}]},{"group":"Runner version","pages":[{"title":"Set the CLI version this gateway names to its runners","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/runner-version","href":"/api-reference/runner-version/set-the-cli-version-this-gateway-names-to-its-runners"}]},{"group":"Work Items","pages":[{"title":"Read a runner key's host binding","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/runner/host-key","href":"/api-reference/work-items/read-a-runner-keys-host-binding"},{"title":"List live work items","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items","href":"/api-reference/work-items/list-live-work-items"},{"title":"Add an issue to Work","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items","href":"/api-reference/work-items/add-an-issue-to-work"},{"title":"Request a host build an item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/build","href":"/api-reference/work-items/request-a-host-build-an-item"},{"title":"Declare a session's pull request onto its work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/pull-requests","href":"/api-reference/work-items/declare-a-sessions-pull-request-onto-its-work-item"},{"title":"Report that a step has started on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/steps","href":"/api-reference/work-items/report-that-a-step-has-started-on-a-work-item"},{"title":"Link a session to a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{number}/sessions","href":"/api-reference/work-items/link-a-session-to-a-work-item"},{"title":"Read one work item","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}","href":"/api-reference/work-items/read-one-work-item"},{"title":"List a work item's artifacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/artifacts","href":"/api-reference/work-items/list-a-work-items-artifacts"},{"title":"List checks recorded on a work item since a point","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/changes","href":"/api-reference/work-items/list-checks-recorded-on-a-work-item-since-a-point"},{"title":"List the checks currently open on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/checks","href":"/api-reference/work-items/list-the-checks-currently-open-on-a-work-item"},{"title":"Claim a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim","href":"/api-reference/work-items/claim-a-work-item"},{"title":"Release a host's claim on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/release","href":"/api-reference/work-items/release-a-hosts-claim-on-a-work-item"},{"title":"Renew a host's claim on a work item","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/renew","href":"/api-reference/work-items/renew-a-hosts-claim-on-a-work-item"},{"title":"Stop a work item's host build","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/stop","href":"/api-reference/work-items/stop-a-work-items-host-build"},{"title":"Issue a GitHub token for a work item's repository or its control plane","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/claim/tokens","href":"/api-reference/work-items/issue-a-github-token-for-a-work-items-repository-or-its-control-plane"},{"title":"Read a host attempt's runner log","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/claims/{claimId}/log","href":"/api-reference/work-items/read-a-host-attempts-runner-log"},{"title":"Post a comment on a work item's general thread or a criterion thread","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/comments","href":"/api-reference/work-items/post-a-comment-on-a-work-items-general-thread-or-a-criterion-thread"},{"title":"Get a work item's newest demo","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/demo","href":"/api-reference/work-items/get-a-work-items-newest-demo"},{"title":"Send review notes on several criteria as one agent job","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/notes","href":"/api-reference/work-items/send-review-notes-on-several-criteria-as-one-agent-job"},{"title":"The problems a work item covers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/problems","href":"/api-reference/work-items/the-problems-a-work-item-covers"},{"title":"Record the result of a fix for one covered problem","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/work-items/{workItemId}/problems/{problemId}/result","href":"/api-reference/work-items/record-the-result-of-a-fix-for-one-covered-problem"},{"title":"Open or edit a work item's pull request","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/work-items/{workItemId}/pull-request","href":"/api-reference/work-items/open-or-edit-a-work-items-pull-request"},{"title":"Withdraw a work item's declaration of a pull request","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/work-items/{workItemId}/pull-requests/{repository}/{prNumber}","href":"/api-reference/work-items/withdraw-a-work-items-declaration-of-a-pull-request"},{"title":"Remove an addition from Work","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/work-items/{workItemId}/remove","href":"/api-reference/work-items/remove-an-addition-from-work"},{"title":"A work item's general thread and its criterion threads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/work-items/{workItemId}/threads","href":"/api-reference/work-items/a-work-items-general-thread-and-its-criterion-threads"}]},{"group":"Sessions","pages":[{"title":"List agent sessions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/sessions","href":"/api-reference/sessions/list-agent-sessions"},{"title":"Get agent session detail","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/sessions/{traceId}","href":"/api-reference/sessions/get-agent-session-detail"}]},{"group":"Specs","pages":[{"title":"File a spec as an issue","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/specs","href":"/api-reference/specs/file-a-spec-as-an-issue"},{"title":"Search issues a spec might duplicate","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/specs/search","href":"/api-reference/specs/search-issues-a-spec-might-duplicate"},{"title":"Where a spec would be filed","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/specs/target","href":"/api-reference/specs/where-a-spec-would-be-filed"},{"title":"Replace a spec's body","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/specs/{key}","href":"/api-reference/specs/replace-a-specs-body"}]}]}]}]},"title":"Report a runner start that failed a check - OuterLayer","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}