coleam00/Archon · warning
⚠️ `${workflow.name}` is deprecated and will be removed in a
Error message
⚠️ `${workflow.name}` is deprecated and will be removed in an upcoming release. ${workflow.deprecated.message} To keep using this workflow after removal, copy the workflow file into your project `.archon/workflows/` or your global `~/.archon/workflows/`. What it means
Deprecation notice from `emitDeprecationNotice` in packages/cli/src/commands/workflow.ts, built by `formatDeprecationNotice`. A workflow marked `deprecated` in its definition still runs, but is scheduled for removal. The notice is printed to stderr (survives `--json` log silencing, not gated on `--quiet`) and explains how to keep the workflow after removal by copying its file into project or global workflow directories.
Source
Thrown at packages/cli/src/commands/workflow.ts:1076
): void {
if (!parseWarnings || parseWarnings.length === 0) return;
console.warn(`Warning: '${workflowName}' declares keys the engine ignores:`);
for (const warning of parseWarnings) {
console.warn(` - ${warning}`);
}
}
/**
* Print a deprecated workflow's removal notice (#2781) to stderr.
*
* Same channel as emitParseWarnings: stderr keeps `--json` stdout parseable,
* and `console.warn` survives `--json`'s log silencing. Not gated on --quiet —
* a user driving runs programmatically still has to learn the default they
* picked is scheduled for removal.
*/
export function emitDeprecationNotice(workflow: WorkflowDefinition): void {
const notice = formatDeprecationNotice(workflow);
if (notice) console.warn(notice);
}
function countWorkflowSources(
workflows: readonly WorkflowWithSource[]
): Record<WorkflowSource, number> {
return workflows.reduce<Record<WorkflowSource, number>>(
(counts, entry) => {
counts[entry.source] += 1;
return counts;
},
{ bundled: 0, global: 0, project: 0 }
);
}
interface WorkflowJsonEntry {
name: string;
description: string;
provider?: string;View on GitHub (pinned to 0773b97458)
Solutions
- Read the workflow's `deprecated.message` in the notice — it names the recommended replacement.
- Migrate scripts to the replacement workflow before the removal release.
- If you must keep it, copy the workflow file into `.archon/workflows/` or `~/.archon/workflows/` as the notice instructs.
- Track the upstream changelog/release notes for the removal version.
Example fix
// before archon workflow run old-pack-workflow // after archon workflow run new-replacement-workflow
Defensive patterns
Strategy: fallback
Validate before calling
// Detect deprecated workflows before scripting against them
const wf = await registry.get(name);
if (wf?.deprecated) console.warn(`${name} deprecated: ${wf.deprecated.message}`); Type guard
function isDeprecated(w: WorkflowDefinition): w is WorkflowDefinition & { deprecated: { message: string } } {
return 'deprecated' in w && w.deprecated != null;
} Prevention
- Migrate to the replacement named in the deprecation message before upgrading further.
- Pin the Archon version in scripts until migration is done.
- Copy beloved workflows into .archon/workflows/ only as a stopgap, not a plan.
When it happens
Trigger: Invoking any workflow whose `WorkflowDefinition` has a `deprecated` field (with a message); every run of that workflow prints the notice.
Common situations: Using a bundled reference workflow that upstream has deprecated in favor of a replacement; scripts that invoke a deprecated workflow by name; upgrading Archon where a formerly normal workflow is now flagged.
Understand the failure class
Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.
Related errors
- node_on_reject_deprecated
- Cannot execute run '${detachedPreCreatedRun.id}': it belongs
- Dry-run failed; missing stubs: ${blockingMissingStubs.join('
- Failed to get workflow run: ${err.message}
- --open and --status are mutually exclusive: the inbox is fai
AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01).
Data as JSON: /api/errors/ddad80ce31ae2068.
Report an issue: GitHub.