Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn’t hide the next.
A failed expect stops the flow, so no check after it runs. A soft assertion, expect.soft, records the failure, and the flow keeps going. After the last line, the attempt fails with one error that lists the failed checks. When automatic investigation is on, QA Wolf investigates each failed check on its own, so failures with different causes can lead to separate bugs.
expect.soft(subject, name)
subject — what to check, the same as for expect
name — optional label that QA Wolf records with the failure
If the heading and the total are both wrong, the flow records both failures and still checks the Pay button. If the Pay button is also disabled, the flow stops there. The run page then lists all three failures.
Await each expect.soft the same way as expect. A soft check that fails after the flow ends is dropped, so the attempt can pass.
Pass a short name as the second argument, such as "Invoice total". QA Wolf records the name with the failure. It appears in the attempt’s logs, next to the check’s file and line, and in the failures QA Wolf’s MCP returns for the attempt.
Platforms — web, iOS, Android and Windows flows, through the expect you already import from @qawolf/flows. In Windows flows, expect.soft dispatches on its subject the same way expect does. Node flows (@qawolf/flows/cli) don’t have expect.soft.
Failures per attempt — at most 100. The attempt’s error counts the rest as “…and N more”.
Call only — expect.soft(subject, name) has none of expect’s properties, such as poll, configure or extend. In web and Windows flows, expect.configure({ soft: true }) throws. Use expect.soft instead.
Timeouts — each failing soft check still waits the full expect timeout before QA Wolf records it.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"QA Wolf Docs","colors":{"primary":"#3b3cef","light":"#08edcb","dark":"#3b3cef"},"logo":{"light":"https://mintcdn.com/qawolf/8HFRRs7AoYV9S40R/logo/light.svg?fit=max\u0026auto=format\u0026n=8HFRRs7AoYV9S40R\u0026q=85\u0026s=b9d699b988c7eab072287836c4d9e0d2","dark":"https://mintcdn.com/qawolf/8HFRRs7AoYV9S40R/logo/dark.svg?fit=max\u0026auto=format\u0026n=8HFRRs7AoYV9S40R\u0026q=85\u0026s=cd2ad525ee7dd964ff4836f7df8d2b54","href":"https://www.qawolf.com"},"favicon":{"light":"https://mintcdn.com/qawolf/R2NspCz4NaCGUkW7/favicon.png?fit=max\u0026auto=format\u0026n=R2NspCz4NaCGUkW7\u0026q=85\u0026s=d25b1eaf526daf1590d54c42755028a3","dark":"https://mintcdn.com/qawolf/R2NspCz4NaCGUkW7/favicon.png?fit=max\u0026auto=format\u0026n=R2NspCz4NaCGUkW7\u0026q=85\u0026s=d25b1eaf526daf1590d54c42755028a3"},"appearance":{"default":"dark"},"background":{"decoration":"gradient","color":{"dark":"#0b0b2f"}},"navbar":{"links":[{"href":"mailto:hello@qawolf.com","label":"Support"},{"href":"https://app.qawolf.com/sign-in","label":"Sign in"}],"primary":{"type":"button","label":"Try for free","href":"https://qawolf.com"}},"footer":{"socials":{"x":"https://twitter.com/qawolfhq","github":"https://github.com/qawolf/qawolf","linkedin":"https://www.linkedin.com/company/qa-wolf"}},"seo":{"metatags":{"canonical":"https://docs.qawolf.com"}},"icons":{"library":"lucide"},"integrations":{"posthog":{"apiKey":"phc_qEW3U4XMuhdJa6Rf2QZvbyKcixM5mYyq5BYNopuSxBFw","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qawolf","hasAudioNarration":false,"actualSubdomain":"qawolf","customDomains":["docs.qawolf.com"],"gitSource":{"type":"github","owner":"qawolf","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1c193b478eaada98401ab","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"References","count":43},{"language":"default","tag":"Solutions","count":37},{"language":"default","tag":"Integrations","count":32},{"language":"default","tag":"Features","count":13},{"language":"default","tag":"CI/CD","count":10},{"language":"default","tag":"@qawolf/flows","count":10},{"language":"default","tag":"Legacy triggers","count":9},{"language":"default","tag":"Audio","count":7},{"language":"default","tag":"Deployment testing","count":7},{"language":"default","tag":"Run Orchestration","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"hello@qawolf.com"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"soft-checks","slug":"/soft-checks","pageMetadata":{"title":"Keep a flow going past a failed check","description":"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn't hide the next.","sidebarTitle":"Soft checks","keywords":["soft assertion","non-blocking assertion","multiple assertions","continue on failure"],"href":"/soft-checks"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn’t hide the next.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A failed `,_jsx(_components.code,{children:`expect`}),` stops the flow, so no check after it runs. A soft assertion, `,_jsx(_components.code,{children:`expect.soft`}),`, records the failure, and the flow keeps going. After the last line, the attempt fails with one error that lists the failed checks. When automatic investigation is on, QA Wolf investigates each failed check on its own, so failures with different causes can lead to separate bugs.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`soft`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`subject`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`subject`}),` — what to check, the same as for `,_jsx(_components.code,{children:`expect`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`name`}),` — optional label that QA Wolf records with the failure`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Example:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`flow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@qawolf/flows/web\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` flow`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Review an invoice\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`target:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Web - Chrome\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`launch:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:` ({ `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`page`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:` }) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` page`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`goto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`process`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"/invoices/42`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`soft`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`page`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getByRole`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"heading\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`level:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }), `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Invoice heading\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toHaveText`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Invoice 42\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`soft`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`page`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getByTestId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invoice-total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Invoice total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toHaveText`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$120.00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` pay`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` page`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getByRole`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"button\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Pay\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`pay`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toBeEnabled`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pay`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`click`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`page`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getByText`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Paid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toBeVisible`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`If the heading and the total are both wrong, the flow records both failures and still checks the Pay button. If the Pay button is also disabled, the flow stops there. The run page then lists all three failures.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Await each `,_jsx(_components.code,{children:`expect.soft`}),` the same way as `,_jsx(_components.code,{children:`expect`}),`. A soft check that fails after the flow ends is dropped, so the attempt can pass.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use-soft-checks`,children:`When to use soft checks`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Use `,_jsx(_components.code,{children:`expect.soft`}),` for checks that nothing later in the flow depends on, such as several values on one page.`]}),`\n`,_jsxs(_components.li,{children:[`Use `,_jsx(_components.code,{children:`expect`}),` for a check that a later step relies on, such as a button the flow clicks next.`]}),`\n`,_jsxs(_components.li,{children:[`Don’t use `,_jsx(_components.code,{children:`expect.soft`}),` inside a loop. A check that fails on every iteration records a failure each time, and an attempt keeps at most 100 failures.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`name-each-check`,children:`Name each check`}),`\n`,_jsxs(_components.p,{children:[`Pass a short name as the second argument, such as `,_jsx(_components.code,{children:`\"Invoice total\"`}),`. QA Wolf records the name with the failure. It appears in the attempt’s logs, next to the check’s file and line, and in the failures QA Wolf’s MCP returns for the attempt.`]}),`\n`,_jsx(Heading,{level:`2`,id:`platforms-and-limits`,children:`Platforms and limits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Platforms`}),` — web, iOS, Android and Windows flows, through the `,_jsx(_components.code,{children:`expect`}),` you already import from `,_jsx(_components.code,{children:`@qawolf/flows`}),`. In Windows flows, `,_jsx(_components.code,{children:`expect.soft`}),` dispatches on its subject the same way `,_jsx(_components.code,{children:`expect`}),` does. Node flows (`,_jsx(_components.code,{children:`@qawolf/flows/cli`}),`) don’t have `,_jsx(_components.code,{children:`expect.soft`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Failures per attempt`}),` — at most 100. The attempt’s error counts the rest as “…and N more”.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Call only`}),` — `,_jsx(_components.code,{children:`expect.soft(subject, name)`}),` has none of `,_jsx(_components.code,{children:`expect`}),`’s properties, such as `,_jsx(_components.code,{children:`poll`}),`, `,_jsx(_components.code,{children:`configure`}),` or `,_jsx(_components.code,{children:`extend`}),`. In web and Windows flows, `,_jsx(_components.code,{children:`expect.configure({ soft: true })`}),` throws. Use `,_jsx(_components.code,{children:`expect.soft`}),` instead.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Timeouts`}),` — each failing soft check still waits the full `,_jsx(_components.code,{children:`expect`}),` timeout before QA Wolf records it.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Keep a flow going past a failed check","description":"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn't hide the next.","sidebarTitle":"Soft checks","keywords":["soft assertion","non-blocking assertion","multiple assertions","continue on failure"],"href":"/soft-checks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to use soft checks","slug":"when-to-use-soft-checks","depth":2,"children":[]},{"title":"Name each check","slug":"name-each-check","depth":2,"children":[]},{"title":"Platforms and limits","slug":"platforms-and-limits","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/qawolf/31405aa6fa182398/qawolf-attribution-handler.js","/_mintlify/custom/qawolf/ded78afb53673389/qawolf-signup-handler.js","/_mintlify/custom/qawolf/e00fee94bfdab7ef/posthog_utils.js"],"subdomain":"qawolf","siteName":"QA Wolf Docs","title":"Keep a flow going past a failed check - QA Wolf Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T12:50:31.947Z","gitLastModified":"2026-11-09T12:50:23.000Z","originalFileLocation":"soft-checks.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=\"dark\"}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=\"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn\u0026#x27;t hide the next.\">\u003cmeta data-mint-head name=\"application-name\" content=\"QA Wolf Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_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/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Keep a flow going past a failed check - QA Wolf Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn\u0026#x27;t hide the next.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"QA Wolf Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qawolf.com/soft-checks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qawolf.mintlify.site/_mintlify/api/og/v2?division=Flow+conventions\u0026amp;title=Keep+a+flow+going+past+a+failed+check\u0026amp;description=Use+expect.soft+for+checks+nothing+later+in+the+flow+depends+on%2C+so+one+failed+check+doesn%27t+hide+the+next.\u0026amp;theme=319affbc930523d4b89abf45\u0026amp;signature=d8c02f84ff8f23575f5da58b13017bb57c8d14d4f13c7b58873284ea64044d85\">\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=\"Keep a flow going past a failed check - QA Wolf Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn\u0026#x27;t hide the next.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qawolf.mintlify.site/_mintlify/api/og/v2?division=Flow+conventions\u0026amp;title=Keep+a+flow+going+past+a+failed+check\u0026amp;description=Use+expect.soft+for+checks+nothing+later+in+the+flow+depends+on%2C+so+one+failed+check+doesn%27t+hide+the+next.\u0026amp;theme=319affbc930523d4b89abf45\u0026amp;signature=d8c02f84ff8f23575f5da58b13017bb57c8d14d4f13c7b58873284ea64044d85\">\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/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"QA Wolf Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b3cef\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qawolf.com/soft-checks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/soft-checks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qawolf.com/#organization\",\"name\":\"QA Wolf Docs\",\"url\":\"https://docs.qawolf.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qawolf/8HFRRs7AoYV9S40R/logo/light.svg?fit=max\u0026auto=format\u0026n=8HFRRs7AoYV9S40R\u0026q=85\u0026s=b9d699b988c7eab072287836c4d9e0d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qawolf.com#website\",\"name\":\"QA Wolf Docs\",\"url\":\"https://docs.qawolf.com\",\"publisher\":{\"@id\":\"https://docs.qawolf.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qawolf.com/soft-checks#webpage\",\"url\":\"https://docs.qawolf.com/soft-checks\",\"name\":\"Keep a flow going past a failed check\",\"description\":\"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn't hide the next.\",\"dateModified\":\"2026-11-09T12:50:23.000Z\",\"isPartOf\":{\"@id\":\"https://docs.qawolf.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qawolf.com/soft-checks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qawolf.com/soft-checks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Flow conventions\",\"item\":\"https://docs.qawolf.com/anatomy-of-a-flow\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Keep a flow going past a failed check\",\"item\":\"https://docs.qawolf.com/soft-checks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.qawolf.com/soft-checks#article\",\"headline\":\"Keep a flow going past a failed check\",\"name\":\"Keep a flow going past a failed check\",\"description\":\"Use expect.soft for checks nothing later in the flow depends on, so one failed check doesn't hide the next.\",\"url\":\"https://docs.qawolf.com/soft-checks\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qawolf.com/soft-checks#webpage\"},\"dateModified\":\"2026-11-09T12:50:23.000Z\",\"keywords\":\"soft assertion, non-blocking assertion, multiple assertions, continue on failure\",\"publisher\":{\"@id\":\"https://docs.qawolf.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qawolf.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"QA Wolf Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"QA Wolf Docs","nav":{"global":null,"tabs":[{"tab":"Start","pages":[{"title":"Start","href":""}]},{"tab":"Features","pages":[{"title":"Features","href":"/product-mapping"}]},{"tab":"Solutions","pages":[{"title":"Solutions","href":"/solutions"}]},{"tab":"References","pages":[{"group":"Flow conventions","pages":[{"title":"Anatomy of a flow","description":"What each part of a QA Wolf flow does, and how the same structure carries across web, iOS, Android, and Windows.","href":"/anatomy-of-a-flow"},{"title":"Keep a flow going past a failed check","sidebarTitle":"Soft checks","href":"/soft-checks"},{"title":"Lint rules","description":"How QA Wolf lints your flows and page objects, and how an .eslintrc.json changes what blocks an AI job.","href":"/lint-rules"}]},{"group":"@qawolf/flows","pages":[{"title":"Top-Level","sidebarTitle":"Top-Level","href":"/libraries/flows/api-reference/top-level"},{"title":"Web","sidebarTitle":"Web","href":"/libraries/flows/api-reference/web"},{"title":"Node Reference","sidebarTitle":"Node","href":"/libraries/flows/api-reference/cli"},{"title":"Android","sidebarTitle":"Android","href":"/libraries/flows/api-reference/android"},{"title":"Android Device Controls","href":"/libraries/flows/api-reference/android-device-reference"},{"title":"iOS","sidebarTitle":"iOS","href":"/libraries/flows/api-reference/ios"},{"title":"iOS Device Controls","href":"/libraries/flows/api-reference/ios-device-reference"},{"title":"iOS Device Pools","sidebarTitle":"Device Pools","href":"/libraries/flows/api-reference/ios-device-pools"},{"title":"Windows","sidebarTitle":"Windows","href":"/libraries/flows/api-reference/windows"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/libraries/flows/troubleshooting"}]},{"group":"@qawolf/pom","pages":[{"title":"POM Reference","sidebarTitle":"POM Reference","href":"/libraries/pom/api-reference/index"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/libraries/pom/troubleshooting"}]},{"group":"@qawolf/testkit","pages":[{"title":"Core","sidebarTitle":"Core","href":"/libraries/testkit/api-reference/core"},{"title":"Types","sidebarTitle":"Types","href":"/libraries/testkit/api-reference/types"},{"title":"Web","sidebarTitle":"Web","href":"/libraries/testkit/api-reference/web"},{"title":"Client","sidebarTitle":"Client","href":"/libraries/testkit/api-reference/client"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/libraries/testkit/troubleshooting"}]},{"group":"@qawolf/emails","pages":[{"title":"Mail","sidebarTitle":"Mail","href":"/libraries/emails/api-reference/mail"},{"title":"Client","sidebarTitle":"Client","href":"/libraries/emails/api-reference/client"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/libraries/emails/troubleshooting"}]},{"group":"@qawolf/cli","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/libraries/cli/api-reference/index"},{"title":"Commands Reference","sidebarTitle":"Commands","href":"/libraries/cli/api-reference/commands"},{"title":"Drive a runner","sidebarTitle":"Drive a runner","href":"/libraries/cli/drive-a-runner"},{"title":"Environment Variables","sidebarTitle":"Environment Variables","href":"/libraries/cli/api-reference/environment-variables"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/libraries/cli/troubleshooting"}]},{"group":"Local execution","pages":[{"title":"Get started with the QA Wolf CLI","sidebarTitle":"Get started","href":"/local-execution/get-started"},{"title":"Authenticate the QA Wolf CLI","sidebarTitle":"Authenticate","href":"/local-execution/authenticate"},{"title":"Run flows locally","sidebarTitle":"Run flows locally","href":"/local-execution/run-flows-locally"},{"title":"Set up a local-only project","sidebarTitle":"Set up a project","href":"/local-execution/set-up-a-project"},{"title":"Diagnose problems running flows","sidebarTitle":"Diagnose problems","href":"/local-execution/diagnose-problems"}]},{"group":"@qawolf/ci-sdk","pages":[{"title":"SDK Reference","sidebarTitle":"SDK Reference","href":"/libraries/ci-sdk/api-reference"},{"title":"Troubleshooting","href":"/libraries/ci-sdk/troubleshooting"}]},{"group":"Triggers","pages":[{"title":"Trigger fields","sidebarTitle":"Trigger fields","href":"/triggers/reference"},{"title":"Deployments","sidebarTitle":"Deployments","href":"/triggers/deployments"},{"title":"Migrate from legacy triggers","sidebarTitle":"Migrate from legacy triggers","href":"/triggers/migrate-from-legacy-triggers"}]},{"group":"REST","pages":[{"title":"Overview","href":"/rest-overview"},{"title":"v0/run-inputs-executables-signed-urls","sidebarTitle":"Upload a build (legacy)","href":"/run-inputs-executables-signed-urls"},{"title":"webhooks/deploy_success","sidebarTitle":"Notify a deploy (legacy)","href":"/deploy-success"},{"title":"v0/ci-greenlight","sidebarTitle":"Check run results","href":"/v0-ci-greenlight"},{"title":"webhooks/environment_terminated","sidebarTitle":"Terminate an environment","href":"/environment_terminated"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"Full Service","pages":[{"title":"Full Service","href":"/onboarding-to-full-service"}]}]},"basePath":"","title":"Keep a flow going past a failed check - QA Wolf Docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}