When parameter remains ignored for persist_to_workspace

I’m not sure why the when parameter is undocumented for persist_to_workspace, it stated as valid from from circleci config validate and runs on circleci. However, setting when to always doesn’t seem to be taking effect

persist_to_workspace:
  root: << parameters.workspace >>
  paths:
    - ./*checksum.txt
    - job/*/build/*/colcon_test.rc
    - job/*/build/*/test_results/*
  when: always

Here is an example where I’ve been trying to use workspaces to aggregate test results from a parallelised job. See that for the 3rd container that fails, the final step is missing:
Persisting to Workspace (2)

https://circleci.com/gh/ruffsl/navigation2/700#tests/containers/0

Given that workspaces are not synchronized across parallel containers for a single job, and that caches are write only, and that artifacts can only be accessed via the REST API, is there any means for parallel containers to communicate with each other? I’ve tried to split my tasks into separate jobs in the workflow, with the goal of caching passed test results so that consecutive re-runs of failed workflows only focus on the remaining failing tests. However, there doesn’t seem to be any way for a job to run when:always regardless if any of its required jobs fail, thus I can’ never reach the aggregate job.

1 Like

Related: “Option to allow failures in Fan-In/Out Workflow”

https://ideas.circleci.com/ideas/CCI-I-344