Astro uses a virtual module system (via Vite) with the astro: protocol (e.g., astro:db) to provide dynamic imports. These aren’t real files on disk—they’re generated at runtime by Astro’s dev server. Your IDE doesn’t “know” about astro:db or astro:schema unless explicitly configured with Astro’s internals, so it can’t flag astro:schema as invalid—it just sees a string that looks like an import.
Check for invalid import; it may be syntactically valid JavaScript—it’s a proper import statement. The problem is that 'astro:schema' doesn’t exist, but this only becomes apparent when Astro tries to resolve it at runtime.