withastro/astro · warning

The adapter ${adapter.name} uses `entrypointResolution: "exp

Error message

The adapter ${adapter.name} uses `entrypointResolution: "explicit"` by default, which is deprecated and will be removed in a future major version.

What it means

Adapters that do not set entrypointResolution implicitly use the legacy 'explicit' mode where the adapter supplies entry file paths. That implicit default is deprecated — a future major will default to 'auto' (Astro resolves entrypoints). The warning targets adapter authors and prints whenever the adapter object omits the field.

Source

Thrown at packages/astro/src/core/dev/adapter-validation.ts:52

		// If the adapter is not compatible with the build output, throw an error
		if (command === 'build') {
			const adapterRecommendation = getAdapterStaticRecommendation(adapter.name);

			throw new AstroError({
				...AstroErrorData.AdapterSupportOutputMismatch,
				message: AstroErrorData.AdapterSupportOutputMismatch.message(adapter.name),
				hint: adapterRecommendation ? adapterRecommendation : undefined,
			});
		} else if (command === 'dev') {
			logger.warn(
				null,
				`The adapter ${adapter.name} does not support emitting a server output, but the project contain server-rendered pages. Your project will not build correctly.`,
			);
		}
	}

	if (adapter.entrypointResolution === undefined) {
		logger.warn(
			null,
			`The adapter ${adapter.name} uses \`entrypointResolution: "explicit"\` by default, which is deprecated and will be removed in a future major version.`,
		);
		logger.warn(
			null,
			'Update your adapter to use \`entrypointResolution: "auto"\` or contact the maintainers to update.',
		);
	}
}

View on GitHub (pinned to 52e6c34790)

Solutions

  1. Adapter authors: add entrypointResolution: 'auto' to the returned AstroAdapter object
  2. Users: upgrade to a newer release of the adapter that sets the field
  3. If no updated release exists, open or +1 an issue with the adapter repository

Example fix

// before — adapter author's code
export default function myAdapter(): AstroAdapter {
  return {
    name: '@you/astro-adapter',
    serverEntrypoint: new URL('./entrypoint.js', import.meta.url),
    // entrypointResolution missing -> legacy 'explicit' default
  };
}

// after
export default function myAdapter(): AstroAdapter {
  return {
    name: '@you/astro-adapter',
    entrypointResolution: 'auto',
    serverEntrypoint: new URL('./entrypoint.js', import.meta.url),
  };
}
Defensive patterns

Strategy: validation

Validate before calling

// for adapter authors / integration tests
import { myAdapter } from '@you/astro-adapter';
const adapter = myAdapter();
if (adapter.entrypointResolution === undefined) {
  throw new Error('adapter must set entrypointResolution: "auto"');
}

Prevention

When it happens

Trigger: config.adapter is registered with entrypointResolution === undefined — i.e. any adapter (typically third-party/community ones) that has not been updated to declare the field.

Common situations: Using a community adapter or a fork of an older official adapter after Astro introduced entrypointResolution; internal/company adapters not yet migrated.

Related errors


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