Older pipelines are marking a deploy job as failed instead of skipped

I have a pipeline on a main branch that has a manually triggered staging deploy job followed by a manually triggered production deploy job and then some automatically triggered post-deploy jobs. I have enabled the setting to skip old deploy jobs.

When a newer pipeline is completed (we deploy to staging and then production), the older production deploy jobs get marked as failed instead of skipped. The older staging deploy jobs don’t change at all (which is fine). The automated post-deploy jobs get correctly marked as skipped.

This is confusing because in our Slack channel and the Gitlab Environments page we see a lot of failed production deploys that were actually skipped.

Is there a way to get these production deploy jobs to skip instead of fail?

In this screenshot, the second row is a successful deploy to both environments. Then the following three rows are skipped. The staging deploy job is still marked as manual, the production deploy job is marked as failed, and the post-deploy jobs are marked as skipped.

I’m using gitlab.com with my own runners on GCP.