Gitlab CI: artifact download error in multiproject pipeline

I am facing an issue regarding artifact downloading in multiproject pipelines.
Explanation:

I have three projects (project A, B and C). Project A and B are upstream projects and C is the downstream project.

Project C needs artifacts from both project A and B.

  • When I launch pipeline C (manually or when there is commit), it works fine with no problem. It can download the artifacts from A and B and finishes with success.

  • When C is triggered by B, also it works fine with no issues.

  • But when C is triggered by A, jobs inside pipeline C can’t download artifact from project B. it’s strange as a behaviour. I got this error:

Downloading artifacts for Build_1 (8953475034)...
FATAL: open C:\path\to\Project_B\upload\TEMP\artifacts4164143429: The system cannot find the path specified. 
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

Here is the pipelines codes (simplified):

Project-A :

stages:
  - build
  - trigger

build-linux:
  stage: build
  tags:
    - linux
  image: artifactory.example.com/repo/gitlab-ci-linux:0.0.1
  services:
    - name: docker:25.0.5-dind-alpine3.19
  script:
    - #some script
  artifacts:
    paths:      
      - $CI_PROJECT_DIR/out/*
  only:
    - master


build-windows:
  stage: build
  tags:
    - windows
  image: 
    name: artifactory.example.com/repo/gitlab-ci-windows:tag
    entrypoint: [""]
  variables:
    PACK_DIR: "upload"
  script:
    - #some script
  artifacts:
    paths:
      - ${env:PACK_DIR}/*.zip
      - ${env:PACK_DIR}/*.txt
  only:
    - master
      
trigger_project_C:
    stage: trigger
    trigger:
        project: "path/to/project_C"
        branch: "main"
    needs:
        - job: build-windows
    only:
        - master

Project B:

stages:
    - build_and_save
    - trigger

Build_1:
    stage: build_and_save
    tags:
        - linux
    image: docker:25.0.5-git
    script:
        - #some script
    artifacts:
        paths:
            - "$CI_PROJECT_DIR/out/"
    only:
        - main

Build_2:
    stage: build_and_save
    tags:
        - linux
    image: docker:25.0.5-git
    script:
        - #some script
    artifacts:
        paths:
            - "$CI_PROJECT_DIR/out/"
    only:
        - main

Trigger_project_C:
    stage: trigger
    trigger:
        project: "path/to/project_C"
        branch: "main"
    only:
        - main

Project C :

stages:
  - build


Build_product_light:
  stage: build
  tags:
    - windows
  image: 
    name: artifactory.example.com/build/gitlab-ci-windows:tag
    entrypoint: [""]
  script:
    - #some script  
  needs:
    - project: "path/to/project_B"
      job: "Build_1"
      ref: main
      artifacts: true
    - project: "path/to/project_A"
      job: "build_windows"
      ref: master
      artifacts: true
  only:
    - main

Build_product:
  stage: build
  tags:
    - windows
  image: 
    name: artifactory.example.com/build/gitlab-ci-windows:tag
    entrypoint: [""]
  script:
    - # some script
  needs:
      - project: "path/to/project_A"
        job: "build_windows"
        ref: master
        artifacts: true
      - project: "path/to/project_B"
        job: "Build_2"
        ref: main
        artifacts: true
  only:
      - main