coleam00/Archon · error · RunModelPresetValidationError
unknown-provider: provider '${preset.provider}' is not a reg
Error message
unknown-provider: provider '${preset.provider}' is not a registered provider (RunModelPresetValidationError, field 'provider') What it means
`normalizeStrictRunModelPreset` is the strict gate every execution-input model preset must pass (fresh config, explicit run overrides, and persisted overrides). It throws a typed `RunModelPresetValidationError` with issue kind `unknown-provider` when the preset's provider is not in the registered provider registry, field `provider`. Unlike layered config (tolerant), execution inputs fail hard.
Source
Thrown at packages/workflows/src/model-validation.ts:160
}
}
/** A strict execution-input preset failed a provider-owned semantic invariant. */
export class RunModelPresetValidationError extends Error {
constructor(readonly issue: RunModelPresetValidationIssue) {
super(runModelPresetValidationMessage(issue));
this.name = 'RunModelPresetValidationError';
}
}
/**
* Validate and canonicalize a model preset that will directly affect one run.
* Ordinary layered config remains tolerant; every strict execution-input path
* (fresh config, explicit overrides, and persisted overrides) shares this gate.
*/
export function normalizeStrictRunModelPreset(preset: ModelAliasPreset): ModelAliasPreset {
if (!isRegisteredProvider(preset.provider)) {
throw new RunModelPresetValidationError({
kind: 'unknown-provider',
provider: preset.provider,
field: 'provider',
});
}
let model: string;
try {
model = parseProviderRunModel(preset.provider, preset.model);
} catch (error) {
throw new RunModelPresetValidationError({
kind: 'invalid-model',
provider: preset.provider,
model: preset.model,
reason: error instanceof Error ? error.message : String(error),
field: 'model',
});
}View on GitHub (pinned to 0773b97458)
Solutions
- Correct the provider name to a registered one (check the provider registry list)
- Load/register the provider plugin that defines the missing provider, if one exists
- Remove or regenerate the persisted override preset on this install
- Catch `RunModelPresetValidationError` and inspect `error.issue.kind === 'unknown-provider'` to surface the bad provider to the user
Example fix
// before
normalizeStrictRunModelPreset({ provider: 'anthropicc', model: 'claude-sonnet-4' })
// after
normalizeStrictRunModelPreset({ provider: 'anthropic', model: 'claude-sonnet-4' }) Defensive patterns
Strategy: type-guard
Validate before calling
import { isRegisteredProvider } from '@archon/providers';
// Check before calling any strict normalization path.
if (!isRegisteredProvider(preset.provider)) {
throw new Error(`Provider '${preset.provider}' is not registered; pick a registered provider`);
} Type guard
import { isRegisteredProvider } from '@archon/providers';
function hasKnownProvider(p: { provider: string; model: string }): boolean {
return isRegisteredProvider(p.provider);
} Try / catch
import { RunModelPresetValidationError } from '@archon/workflows/model-validation';
try {
const canonical = normalizeStrictRunModelPreset(preset);
} catch (err) {
if (err instanceof RunModelPresetValidationError && err.issue.kind === 'unknown-provider') {
throw new Error(`Run rejected: '${err.issue.provider}' is not a registered provider`, { cause: err });
}
throw err;
} Prevention
- Pick provider names from the registered provider list, not memory
- Check that any provider plugin defining a custom provider is loaded in this install
- Regenerate persisted overrides when moving presets between installs
- Validate preset.provider with isRegisteredProvider before launching or overriding a run
When it happens
Trigger: Starting or overriding a run with a model preset whose provider string is not registered — typo in provider name, provider added by a plugin that is not loaded, or a preset persisted by an install that had a provider this install lacks.
Common situations: Typos like `anthropicc`, using a community/provider-alias name not registered in this install, copying a preset from another machine with different provider plugins.
Related errors
- Model binding '${name}' has an invalid effort.
- Invalid run config at 'document': expected an object
- Unknown run config key '${key}'.
- Run config key '${key}' cannot apply: ${classification.reaso
- Run config cannot set both 'assistant' and 'defaultAssistant
AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01).
Data as JSON: /api/errors/c15f2ffada608d40.
Report an issue: GitHub.