Docs

action_refusal

Why a declared action or a GitHub workflow job is refused: an action_refused error's reason, and the reason lvcs explain and lvcs status print for a refused job. A refused job holds every change channel until it is fixed or listed in lvcs.toml's [workflows] skip.

ValueMeaning
duplicateTwo declarations make one action: the same name, the same ActionId, two jobs or actions for one channel, or a [channels] combination named like an action. They are never merged.
containerA job runs in a container:, which the sandbox has no image store for.
servicesA job declares services:.
docker_actionA step runs a Docker action (docker:// or runs.using: docker).
reusable_workflowA job calls a reusable workflow (jobs.<id>.uses).
event_payloadAn expression reads github.event, the event's payload, which no LVCS run has.
needs_outputsAn expression reads needs, which slice 1 does not run in order (stage D).
download_artifactA step uses actions/download-artifact (stage D).
shellA step's shell is pwsh, powershell, cmd, or not a command line holding {0}.
dynamic_matrixA matrix, or one of its dimensions, is an expression.
secret_in_changeA change action declares or reads secrets or github.token, which only an action gated after a channel has: any merged code runs in a change action's sandbox.
unpinned_usesA third-party uses: names a ref that is not a commit.
not_vendoredA third-party or local uses: names an action with no vendored tree (stage D).
unmapped_setupA setup-* action other than actions/setup-node, or a setup-node input LVCS can't satisfy (lts/*, node-version-file, registry-url).
oidcpermissions: id-token: write: LVCS has no OIDC issuer.
bad_channelA job's environment (the channel of a gated action), a change job's lowercased <file stem>/<job id>, or an action's channel name is refused, a [channels] combination has no members, or an after, a channel trigger, or a [channels] member names the generator's channel, which can't gate an action.
too_manyA matrix past ACTION_MATRIX_MAX cells, or a file past WORKFLOW_BYTES.
unsupported_stepA step kind GitHub runs that LVCS doesn't: wait, wait-all, cancel, parallel, background: true, or a built-in's input it can't honor.
bad_needsA job's needs names no job of its file, or needs forms a cycle.
unknown_triggerA gated action's channel trigger (on = { channel = ... }, or a workflow's workflow_run), or an after or [channels] member, names no action's channel and no combination, or names its own.
trigger_cycleChannel triggers, after links, and needs form a cycle, so a channel would wait on itself; the refusal names the cycle.
invalidThe file is not a workflow (YAML that doesn't parse as one), or an expression doesn't parse or reads a context LVCS doesn't have.

Cardinality: 22.