withastro/astro · warning

The adapter ${adapterName} has deprecated its support for "$

Error message

The adapter ${adapterName} has deprecated its support for "${featureName}", and future compatibility is not guaranteed. The adapter may completely remove support for this feature without warning.

What it means

At config setup Astro validates the adapter's per-feature support declarations (adapter.features). When a feature's support kind is DEPRECATED and suppression is not requested, Astro warns (domain 'config') that the adapter has deprecated that feature and may remove it without warning — the build still works today but is on borrowed time.

Source

Thrown at packages/astro/src/integrations/features-validation.ts:153

	}

	return false;
}

function logFeatureSupport(
	adapterName: string,
	logger: AstroLogger,
	featureName: string,
	supportKind: AdapterSupport,
	adapterMessage?: string,
	suppress?: 'all' | 'default',
) {
	if (!suppress) {
		switch (supportKind) {
			case AdapterFeatureStability.STABLE:
				break;
			case AdapterFeatureStability.DEPRECATED:
				logger.warn(
					'config',
					`The adapter ${adapterName} has deprecated its support for "${featureName}", and future compatibility is not guaranteed. The adapter may completely remove support for this feature without warning.`,
				);
				break;
			case AdapterFeatureStability.EXPERIMENTAL:
				logger.warn(
					'config',
					`The adapter ${adapterName} provides experimental support for "${featureName}". You may experience issues or breaking changes until this feature is fully supported by the adapter.`,
				);
				break;
			case AdapterFeatureStability.LIMITED:
				logger.warn(
					'config',
					`The adapter ${adapterName} has limited support for "${featureName}". Certain features may not work as expected.`,
				);
				break;
			case AdapterFeatureStability.UNSUPPORTED:
				logger.error(

View on GitHub (pinned to 52e6c34790)

Solutions

  1. Check the adapter's changelog for the recommended migration off that feature
  2. Migrate away from the deprecated feature, or consciously pin the adapter version while you plan the move
  3. Adapter authors can suppress the warning for intentional use; end users can filter it from logs if the usage is deliberate
Defensive patterns

Strategy: validation

Validate before calling

const features = astroConfig.adapter?.features ?? {};
for (const [name, f] of Object.entries(features)) {
  if (f && typeof f === 'object' && f.support === 'deprecated') {
    console.warn('adapter deprecated feature in use: ' + name);
  }
}

Type guard

function isDeprecatedSupport(f: unknown): boolean {
  return typeof f === 'object' && f !== null && (f as { support?: string }).support === 'deprecated';
}

Prevention

When it happens

Trigger: Your adapter's feature map declares support: 'deprecated' for a feature the project uses (e.g. sharpImageService, envGetSecret) and neither the adapter nor your setup passes a suppress value for it.

Common situations: Adapter releases progressively withdrawing niche features; pairing an older adapter with a newer Astro where a feature moved to deprecated; warning appearing right after upgrading the adapter package.

Related errors


AI-assisted analysis of withastro/astro@52e6c34790 (2026-08-18). Data as JSON: /api/errors/d8ea745c7dee1198. Report an issue: GitHub.