# When can the new \`not\_run\` job state be used in a workflow's \`requires\` list?

**URL:** <https://discuss.circleci.com/t/when-can-the-new-not-run-job-state-be-used-in-a-workflows-requires-list/54260>\
**Category:** Product Feedback\
**Tags:** circle-yml, workflow\
**Created:** [December 8, 2025, 6:35pm UTC](https://discuss.circleci.com/t/when-can-the-new-not-run-job-state-be-used-in-a-workflows-requires-list/54260 "2025-12-08T18:35:36Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![henrahmagix](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/henrahmagix/32/29450_2.png) [@henrahmagix](https://discuss.circleci.com/u/henrahmagix)\
**Post date:** [December 8, 2025, 6:35pm UTC](https://discuss.circleci.com/t/when-can-the-new-not-run-job-state-be-used-in-a-workflows-requires-list/54260/1 "2025-12-08T18:35:36Z")

</div>

tl;dr: a new job state has appeared publicly, but may not be working - is it actually available? or when might it be?

I noticed in the public schema that a new `not_run` state has been added, as of 2 weeks ago. I found the [source on GitHub](https://github.com/CircleCI-Public/circleci-yaml-language-server/pull/387). The documentation, though, naturally [doesn’t include it](https://circleci.com/docs/reference/configuration-reference/#requires), nor does the cci-language-server (the bottom half of the following image is being sourced from the public schema, hence my confusion):

 ![workflows.build_test_and_deploy.jobs.6.test-coordinator.requires.0.test_failure must be one of the following: "success", "failed", "canceled"cci-language-server CircleCI config.yml Allowed Values: not_run, success, failed, canceled. Source: circleciconfig.json](https://global.discourse-cdn.com/circleci/original/3X/9/e/9e56be2d1b331385419dbbfb260e97e3822fedce.png)

I’ve tried to use it, but it isn’t functioning as expected: when a job doesn’t run because one of its `requires` doesn’t match, any job requiring _that_ job to end with `not_run` state will _not_ run. I know, of course, this isn’t at all defined as a feature yet, so there isn’t really a spec against which I can reasonably set my expectations.

So I’m just wondering when it may become available? Because it’ll allow me to _massively_ reduce my configuration by removing a whole bunch of scripts that are basically doing the same thing, and reduce them down to proper CircleCI workflow orchestration ☺ 🙏

* * *

Example config:

```yaml
version: 2.1
jobs:
  test_success:
    resource_class: small
    docker:
      - image: cimg/base:current
    steps:
      - run: 'echo success'
  test_failure:
    resource_class: small
    docker:
      - image: cimg/base:current
    steps:
      - run: 'echo failed && exit 1'
  test-coordinator:
    type: no-op
workflows:
  build_test_and_deploy:
    jobs:
      # Run tests in parallel.
      - test_success
      - test_failure
      - test_success:
          name: test_not_run
          filters:
            branches:
              only:
                - foo
      - test-coordinator:
          name: wait_for_tests_all
          requires:
            - test_success
            - test_failure
      - test-coordinator:
          name: after_tests_success
          requires:
            - wait_for_tests_all
      - test-coordinator:
          name: after_tests_failed
          requires:
            - wait_for_tests_all: failed
      - test-coordinator:
          name: after_tests_canceled
          requires:
            - wait_for_tests_all: canceled
      - test-coordinator:
          name: after_tests_not_run
          requires:
            - wait_for_tests_all: not_run

```

Results: none of the jobs named `after_tests_*` run. I assumed `after_tests_not_run` would run though.

 ![The example workflow: test_failure failed, test_success passed, and the rest have the hourglass icon. Overall the workflow has ended and is in the Failed state.](https://global.discourse-cdn.com/circleci/original/3X/e/0/e0742a426ed6fa0ce1602b3a0ddaf4495c0b5c9d.png)

 ![after_tests_success: blocked Requires success of: wait_for_tests_all](https://global.discourse-cdn.com/circleci/original/3X/b/c/bc9ac559d2d7e6b7d01a00de2b35882b8890035e.png)

 ![after_tests_not_run: blocked Requires not_run of: wait_for_tests_all](https://global.discourse-cdn.com/circleci/original/3X/3/1/31bfc8889e3b9e68793dc0e3683e1e45d34289b2.png)

 ![after_tests_failed: blocked Requires failure of: wait_for_tests_all](https://global.discourse-cdn.com/circleci/original/3X/0/c/0cb7b7e3fbad0f5f32e715759269d669500b747d.png)

 ![after_tests_canceled: blocked Requires cancellation of: wait_for_tests_all](https://global.discourse-cdn.com/circleci/original/3X/e/5/e519ae610b9f68a87d0d6c3c7d262692fd49670d.png)
