Open
Description
What platform were you using when you found the bug?
- React Flow version: @xyflow/react ^12.3.6
- Browser: Chrome (latest)
- OS: macOS Sequoia 15.2
Live code example
Describe the Bug
Hoping this is just something that I'm missing. Been trying to resolve this for 2 days.
Multiple prop type mismatches between @xyflow/react's TypeScript definitions and React DOM expectations:
- Boolean props are typed as boolean but React expects strings:
Error: Received `true` for a non-boolean attribute `animated`.
Error: Received `true` for a non-boolean attribute `selectable`.
Error: Received `true` for a non-boolean attribute `deletable`.
- Custom props not being properly handled by React DOM:
Error: React does not recognize the `sourceHandleId` prop on a DOM element.
Error: React does not recognize the `targetHandleId` prop on a DOM element.
Error: React does not recognize the `pathOptions` prop on a DOM element.
Steps to reproduce the bug or issue
- Create a custom edge component using BaseEdge
- Pass standard edge properties as defined in the type system:
const edge = {
id: 'edge-1',
source: 'node-1',
target: 'node-2',
animated: true,
selectable: true,
deletable: true,
sourceHandleId: 'handle-1',
targetHandleId: 'handle-2',
pathOptions: {}
};
Expected behavior
- The type system should match the runtime expectations:
- If React expects string attributes, props should be typed as strings
- If props are meant to be boolean, React should handle them as booleans
- Custom props should be properly handled or stripped before reaching React DOM
Screenshots or Videos







Additional context
- These warnings appear in development but don't prevent functionality
- The type system suggests one usage while runtime requires another
- Current workaround is to convert booleans to strings: animated: 'true' as any
- This affects multiple edge properties consistently across the library
- The issue is more noticeable when creating the first edge connection to a root node
Metadata
Metadata
Assignees
Labels
No labels