Error
"This plugin requires PostCSS 8"
Cause: a modern plugin is running inside an old runner that bundles PostCSS 7.
Fix: update the runner (postcss-loader, postcss-cli, gulp-postcss) and install postcss 8 directly in your project.
Config
Config file is ignored
Cause: wrong file name, wrong folder, or ESM syntax in a CommonJS file.
Fix: place postcss.config.js in the project root; use .mjs for export default or .cjs for module.exports.
Tailwind
Tailwind v4 refuses to run as a plugin
Cause: Tailwind v4 moved its PostCSS plugin into a separate package.
Fix: install @tailwindcss/postcss and use it in your config instead of tailwindcss.
Output
Prefixes are missing
Cause: your Browserslist targets only modern browsers that need no prefixes.
Fix: run npx browserslist to see the targets, then adjust .browserslistrc or the browserslist key.
Order
Nesting or minify output looks wrong
Cause: plugins run in the order they are listed.
Fix: put syntax plugins (imports, nesting) first, Autoprefixer after them, and cssnano last.
Audit
npm audit reports a PostCSS vulnerability
Cause: an old nested copy below 8.4.31 is still in your dependency tree.
Fix: run npm ls postcss, update the parent package, or use npm overrides as a last resort.