flowpactworkflow contracts
Rules

FP505 · context-not-available

An expression uses a context or function that GitHub does not allow in that field (e.g. `env` in a reusable workflow call’s `with:`).

CodeNameCategoryDefault severity
FP505context-not-availableEnv & expressions🔴 error

Why it matters

GitHub only makes some contexts available per field. env is not passed to reusable workflows and cannot be used in jobs.\<id\>.with or jobs.\<id\>.if; secrets cannot be used in if:. GitHub rejects the whole workflow when it is triggered — often only on the branch or event that reaches it. Reported by GitHub’s own parser.

How to fix

Use a context that is available there: pass values through inputs/vars, compute them in an earlier job and read needs.\<job\>.outputs, or move the check into a step (if: env.X == ... works in steps).

Example

env:
  TARGET: prod
jobs:
  deploy:
    uses: ./.github/workflows/deploy.yml
    with:
      target: ${{ env.TARGET }}   # env is not available here

Configure

Change the severity (or turn the rule off) in .github/flowpact/flowpact.config.yml, by code or by name:

.github/flowpact/flowpact.config.yml
rules:
  FP505: off
  # or: context-not-available: error

Explain it in the terminal:

flowpact explain FP505

On this page