Subsequent jobs are executed although dependency failed

Summary

When creating a pipeline "A -> B -> C" where relationship is established by needs:, job C is executed although A failed.

E.g.

stages:
  - prepare
  - build
  - deploy

A:
  stage: prepare
  script: "false"

B:
  stage: build
  needs: [ A ]
  artifacts:
    paths: [ stamp ]
  script: touch stamp

C:
  stage: deploy
  needs: [ B ]
  script: test -e stamp

Steps to reproduce

Run CI script above

Example Project

https://gitlab.com/ensc/test-ci-67128/pipelines

What is the current bug behavior?

C is executed and fails

ci

What is the expected correct behavior?

C should be skipped (like B)

Output of checks

This bug happens on GitLab.com

Edited by Enrico Scholz