Troubleshooting Activity Outputs and Input Mapping
Troubleshoot common issues with passing data between activities
This page covers common issues when passing activity outputs to later activities as inputs.
Pipeline Variables Don't Appear in Activity Input Mapping
Symptom
When configuring an activity's Pipeline Input Mapping, the dropdown or list shows "No Data" or doesn't display the pipeline's input variables.
Cause
Pipeline variables are not defined at the pipeline level, or they're not marked as runtime inputs.
Solution
Open the destination pipeline (the one that should receive inputs)
Add or edit pipeline-level variables:
In the UI: Click Variables in the right panel or under Advanced settings
In YAML: Add a
variablessection at the pipeline root level
Set the variable value to
<+input>:pipeline: name: Deploy Application variables: - name: deploymentVersion type: String value: <+input> # Critical: Makes it available for mappingSave the pipeline
Return to the activity and refresh the Pipeline Input Mapping tab
The value: <+input> is required. Without it, the variable won't appear in the activity's Pipeline Input Mapping interface, even if the variable exists in the pipeline.
Activity Receives Default Value Instead of Generated Value
Symptom
The destination activity receives its default input value (e.g., v0.0.0) instead of the dynamically generated value from the source activity.
Cause 1: Missing Phase Dependency
The destination phase runs in parallel with the source phase, so the output value isn't available yet.
Solution:
Edit the process YAML
Find the destination phase
Add
depends-onconfiguration:Save the process
Cause 2: Incorrect Expression in Process Input
The expression path doesn't match the actual phase ID, activity ID, or output name.
Solution:
Verify the expression syntax:
Check that the IDs match your process configuration (case-sensitive)
Common mistakes:
Using phase name instead of phase ID:
<+phase.Version Generation...>(incorrect)Correct:
<+phase.version_generation...>Missing
outputsin the path:<+phase.x.activity.y.OUTPUT>(incorrect)Correct:
<+phase.x.activity.y.outputs.OUTPUT>
Cause 3: Activity Output Not Configured
The source activity doesn't have an outputs section, so the value isn't captured.
Solution:
Edit the source activity
Add the
outputssection:Verify the pipeline expression path matches your pipeline structure
Both Phases Run Simultaneously
Symptom
The source phase and destination phase start executing at the same time, rather than the destination phase waiting for the source phase to complete.
Cause
No dependency configured between the phases.
Solution
Add a phase dependency:
Expression Shows Unresolved in Activity Input
Symptom
The activity's input displays the raw expression (e.g., <+phase.build.activity.gen.outputs.VERSION>) instead of the actual value.
Cause
The expression was evaluated before the source activity completed, typically due to parallel execution or missing dependencies.
Solution
Verify phase dependencies: Ensure
depends-onis configured correctlyCheck execution order: Review the release execution and confirm the source phase completes before the destination phase starts
Verify the expression is correct: Test by manually running the release and checking if the value appears after the source phase completes
Activity Output Shows No Values
Symptom
The source activity's Outputs tab shows no values, even though the pipeline executed successfully.
Cause 1: Pipeline Output Variable Not Defined
The pipeline step doesn't have an outputVariables section.
Solution:
Edit the source pipeline
Find the step that generates the value
Add
outputVariables:Save and test the pipeline
Cause 2: Incorrect Expression Path in Activity
The activity's output expression doesn't match the pipeline structure.
Solution:
Run the pipeline manually
Find the output variable in the step's Outputs tab
Build the correct expression:
Update the activity's outputs section with the correct expression
Cause 3: Variable Not Exported in Script
The shell script doesn't export the variable for Harness to capture.
Solution:
Ensure your script exports the variable:
Pipeline Input Mapping Shows Wrong Variable Type
Symptom
The activity's Pipeline Input Mapping shows a variable with the wrong type or format.
Cause
Pipeline variable type doesn't match the activity input type.
Solution
Ensure type consistency:
Activity Input:
Pipeline Variable:
Expression Evaluates to Empty String
Symptom
The destination activity receives an empty string instead of the expected value.
Possible Causes and Solutions
1. Source pipeline didn't generate output
Check source pipeline logs
Verify the step actually exports the variable
Test pipeline manually
2. Wrong output variable name
Check the pipeline's outputVariables name
Ensure activity output expression uses the correct name
Variable names are case-sensitive
3. Step failed before exporting
Check if the pipeline step completed successfully
Verify exports happen before any exit statements
Check for early returns or errors
Testing and Debugging Tips
Test Pipelines Individually
Before creating activities:
Run the source pipeline manually
Verify output variables appear in the step's Outputs tab
Note the exact variable names
Run the destination pipeline manually with a test value
Verify the pipeline uses the input correctly
Test Activities Without Dependencies
Create a test release:
Set the source activity to run alone
Check its outputs after execution
Manually provide those output values to the destination activity
Verify the destination activity accepts and uses the values
Check Expression Resolution
Use the expression evaluator:
In the pipeline execution view, find the expression evaluator
Test your activity output expression:
Verify it resolves to the expected value
Review Execution Timeline
In the release execution view:
Check the start/end times of each phase
Verify the source phase completes before the destination phase starts
If timing is wrong, check phase dependencies
Enable Debug Logging
In pipeline steps, add debug logging:
Common Expression Mistakes
<+phase.Build.activity...>
<+phase.build.activity...>
Phase names vs IDs
<+phase.x.activity.y.VERSION>
<+phase.x.activity.y.outputs.VERSION>
Missing outputs
<+activityInput.version>
<+activityInput.VERSION>
Case sensitivity
<+pipeline.stage.spec...>
<+pipeline.stages.stage.spec...>
Missing plural stages
Prevention Checklist
Before executing a release with activity outputs:
Related Topics
Last updated
Was this helpful?