Relationships
#3402 literal() output in a step's inputs logs repeated Refusing to evaluate expression warnings
Opened by hammz · 10/13/2026
What happens
A workflow step that passes literal() output through its inputs works, but every run logs repeated warnings for text the author wrote on purpose.
task:
type: model_method
modelType: command/shell
modelName: lit-inputs-shell
methodName: execute
inputs:
run: echo 'MSG=${{ literal('${{ inputs.version }}') }} ${{ literal('${{ github.sha }}') }}'swamp workflow run succeeds and prints MSG=${{ inputs.version }} ${{ github.sha }}, and logs six warnings of this form (two at path inputs.run for each expression, then one at path run for each):
[WRN] swamp·expressions: Refusing to evaluate expression at inputs.run: it was not written in the definition or workflow source, so it arrived as data content. Left as literal text. Raw: ${{ github.sha }}Reproduced on release 20261013.200158.0-sha.35be0b9d.
Expected
No warning for text that a literal() call produced: leaving it as literal text is exactly what the author asked for. At the least, text that is foreign under the widest scope (isForeignExpression), which no swamp evaluation could own, should not warn, and one occurrence should not be reported more than once per run.
Found while triaging swamp-club#3389.
Open
No activity in this phase yet.
Sign in to post a ripple.