#Troubleshooting
Most problems come from one of the rules that fail silently. Run the app in dev mode first: several of them log a console warning there.
| Symptom | Likely cause and fix |
|---|---|
| Nothing drags; the console mentions a missing group | No group resolved. Add vdndGroup and declare the item template inside it. |
| The list area is empty or 0 px tall | The list has no height. Set containerHeight or a CSS height on the scrolling element. |
| Dragging works, but nothing follows the pointer | <vdnd-drag-preview /> is missing. |
| The drag cancels when the item scrolls out of view, or dynamic heights are wrong | The vdndDraggable ID differs from itemIdFn / trackBy. Use the same string in both places. |
| Drops land a row or more off, worse further down the list | Rows are not exactly itemHeight tall. Fix the row height (borders and padding included) or turn on dynamicItemHeight. |
| Items in other lists disappear while dragging | Draggable IDs are duplicated across lists. Make them unique app-wide. |
| Items cannot be dropped into another list | The lists are in different groups, or the target list has no (drop) handler. |
(drop) fires but the arrays do not change | The keys passed to moveItem() do not match the droppableIds. |
| A gap stays where the dragged item was | vdndDraggable is on a nested element. Move it to the template's root element. |
| A custom control inside a row starts a drag instead of responding | Native buttons and inputs are already excluded. For other controls, add the no-drag class to the control (it covers everything inside it), or use dragHandle. |
| The preview loses its styling | The styles rely on ancestor selectors, and the preview is rendered under <body>. Target the preview's own classes. |
| Drops land in the wrong list where two lists overlap | Hit-testing is geometric. See Known limitations. |
Still stuck? Check the FAQ and the Known limitations, or open an issue with a minimal reproduction.