Symptom: tsc fails with Model is not assignable to type "LanguageModelV1" (or similar spec-type errors) on code that looks correct.

Cause: version drift. The ai core expects LanguageModel spec v2/v3 shapes; the installed @ai-sdk/* provider package implements an older spec. The types no longer line up.

Confirmation:
1. Run npm ls ai @ai-sdk/openai (or your provider). If the majors do not belong to the same era (e.g. ai@7 with @ai-sdk/openai@2), that is the bug.
2. Check for nested duplicates: npm ls @ai-sdk/provider showing multiple versions means two spec generations are loaded at once.

Fix:
1. npm install ai@latest @ai-sdk/react@latest @ai-sdk/openai@latest (all satellites, one command, one commit).
2. Delete node_modules and reinstall, then re-run tsc. Stale nested copies survive naive upgrades.
3. If a community provider is involved, check whether it has a release for your ai major. If not, pin ai back or replace the provider.

Verification: tsc --noEmit passes. Then run the app and confirm the model call works at runtime, not just at type level.

The runtime sibling of this error is UnsupportedModelVersionError. Same root cause, same fix.