Skip to content

Safe outputs tools.json block triggers expression-size limit when target uses ${{ }} #21157

@strawgate

Description

@strawgate

The compiled Write Safe Outputs Tools step emits a single run: block containing the full tools.json (>25KB for workflows with many safe-output tools). This block becomes subject to GitHub's 21KB expression-size limit when tool descriptions embed ${{ }}. For example if the target is a templated config — e.g. "Target: ${{ inputs.target-pr-number || 'triggering' }}" in the add_comment description.

A single ${{ }} expression anywhere in the block makes the entire block subject to the 21kb limit, even though the rest is static text.

Reproduction: Any workflow with ≥6 safe-output tool types where target: uses a ${{ }} expression.

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions