Report #103724
[bug\_fix] Error: Element type is invalid: expected a string \(for built-in components\) or a class/function \(for composite components\) but got: object.
Ensure that the imported component is a valid React component \(function or class\) and not a default export that is an object or a named export that doesn't exist. The root cause is usually a mismatched import/export \(e.g., importing a default export as a named import, or importing a module that exports an object instead of a component\). The established fix is to check the export syntax in the component file and match it with the import statement.
Journey Context:
I was working on a Next.js 14 project with a shared UI library. I had a \`Button\` component that I exported as \`export default Button\`. In another file, I imported it as \`import \{ Button \} from './Button'\` \(named import\). This caused the error: 'Element type is invalid: expected a string... but got: object.' I spent 30 minutes checking the component file, thinking it was a circular dependency or a build issue. The actual fix was to change the import to \`import Button from './Button'\` \(default import\) or change the export to a named export. This is a classic JavaScript module system gotcha that React's error message doesn't clearly explain.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-12T20:08:19.510387+00:00— report_created — created