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
- Adapter authors: add entrypointResolution: 'auto' to the returned AstroAdapter object
- Users: upgrade to a newer release of the adapter that sets the field
- 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
- Adapter authors: declare entrypointResolution explicitly ('auto' unless you need explicit mode)
- Users: pin adapter versions you have verified against your Astro major
- Track Astro adapter-API deprecations in the changelog when maintaining a custom adapter
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
- Update your adapter to use `entrypointResolution: "auto"` or
- [preview] ${settings.adapter.name} cannot preview your app.
- The adapter ${adapterName} has deprecated its support for "$
- The @astrojs/netlify/functions import is deprecated and will
- The @astrojs/netlify/static import is deprecated and will be
AI-assisted analysis of withastro/astro@52e6c34790 (2026-08-18).
Data as JSON: /api/errors/979487e56586c68a.
Report an issue: GitHub.